Blend UI 自定义事件 API
on ( event_type, callback )
自定义事件,为一个事件绑定回调函数,同一事件可绑定多个回调函数。
Blend.ui.on(event_type,callback);
参数 | 类型 | 说明 | 是否必须 |
---|---|---|---|
event_type | String | 事件名称 | 是 |
callback | Function | 事件绑定的回调函数fuction(event): event['detail']为layer的id, event['data']为通过fire方法传递过来的数据 | 是 |
可用的系统事件名称
事件名称 | 说明 |
---|---|
layerCreateSuccess | layer创建成功 |
layerLoadFinish | layer页面载入成功 |
layerPullDown | 下拉刷新loading |
layerPoped | layer返回事件 |
tap | slider点击 |
slide | slider滑动切换 |
menuPressed | 菜单建事件 |
layerGoBack | layer中返回键goBack回调 |
backPressedBeforeExit | 返回键退出事件回调 |
实例
document.addEventListener("blendready",function() {
var callbackA = function(e){
console.log(e['data']);
};
var callbackB = function(e){
console.log(e['detail']);
};
//注册事件
//如果是自定义的消息类型,则需要自行触发
Blend.ui.on("event",callbackA};
Blend.ui.on("event",callbackB};
Blend.ui.fire("event","false");
//如果为系统事件,可以由系统触发
//如下为按下android返回键时的处理操作
Blend.ui.on("backPressedBeforeExit",function(){
console.log("back event");
});
});
off ( event_type, [callback] )
解绑事件,解绑event_type类型的函数回调。Blend.ui.on(event_type,[callback]);
参数 | 类型 | 说明 | 是否必须 |
---|---|---|---|
event_type | String | 事件名称 | 是 |
callback | Function | 要解绑的函数,如果callback为空或"all",将会删除所有与event_type绑定的回调函数 | 否 |
实例
document.addEventListener("blendready",function(){
var callbackA = function(e){console.log(e)};
var callbackB = function(e){console.log(e)};
Blend.ui.on("event",callbackA};
Blend.ui.on("event",callbackB};
//解绑callbackA
Blend.ui.off("event",callbackA);
//解除与event相关的所有绑定
Blend.ui.off("event");
//Blend.ui.off("event","all");
});
fire (event_type, targetId, message)
触发注册的事件Blend.ui.fire(type,targetId,message);
参数 | 类型 | 说明 | 是否必须 |
---|---|---|---|
event_type | String | 事件名称 | 是 |
targetId | String | 发送目标的layerId, 如果是false则是广播,如果为“0”则表示向首页发送(通常为index.html) | 是 |
message | Object/String | 发送的数据信息可以是字符串或者json数据 | 否 |
实例
document.addEventListener("blendready",function(){
//自定义事件
var callback = function(e){console.log(e)};
Blend.ui.on("event",callback};
Blend.ui.fire("event","0",{"url":"http://www.baidu.com"});
});
once ( event_type, callback )
注册自定义事件,该自定义事件将在触发后自动注销,只能执行一次Blend.ui.once(event_type, callback);
参数 | 类型 | 说明 | 是否必须 |
---|---|---|---|
event_type | String | 事件名称 | 是 |
callback | Function | 事件绑定的回调函数fuction(event): event['detail']为layer的id, event['data']为通过fire方法传递过来的数据 | 是 |
实例
document.addEventListener("blendready",function() {
var callback = function(e){console.log(e)};
//注册事件
Blend.ui.once("event",callback};
//触发一次事件
Blend.ui.fire("event","false");
//二次触发无效,事件已注销
//Blend.ui.fire("event","false");
});
layerInit ( layerId, callback )
在layerId对应的页面初始化后的执行函数Blend.ui.layerInit(layerId, callback);
参数 | 类型 | 说明 | 是否必须 |
---|---|---|---|
layerId | String | layer的id;当layerId为"0"时表示首页初始化后执行callback函数,其它页面的id由用户自行定义 | 是 |
callback | Function | 在相应layer初始化后执行的函数 | 是 |
实例
document.addEventListener("blendready",function() {
//定义页面id为test的layer初始化后执行的callback
var callback = function(e){console.log("test layer ok")};
Blend.ui.layerInit("test", callback);
//创建layer并显示
var layer = new Blend.ui.Layer({
"url":"content.html",
"id":"test",
"active":true
});
});