Blend UI 自定义事件 API

2018-10-17 11:34 更新
on ( event_type, callback ) 

自定义事件,为一个事件绑定回调函数,同一事件可绑定多个回调函数。

Blend.ui.on(event_type,callback);
参数类型说明是否必须
event_typeString事件名称
callbackFunction事件绑定的回调函数fuction(event): event['detail']为layer的id, event['data']为通过fire方法传递过来的数据


可用的系统事件名称

事件名称说明
layerCreateSuccesslayer创建成功
layerLoadFinishlayer页面载入成功
layerPullDown下拉刷新loading
layerPopedlayer返回事件
tapslider点击
slideslider滑动切换
menuPressed菜单建事件
layerGoBacklayer中返回键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_typeString事件名称
callbackFunction要解绑的函数,如果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_typeString事件名称
targetIdString发送目标的layerId, 如果是false则是广播,如果为“0”则表示向首页发送(通常为index.html)
messageObject/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_typeString事件名称
callbackFunction事件绑定的回调函数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);
参数类型说明是否必须
layerIdStringlayer的id;当layerId为"0"时表示首页初始化后执行callback函数,其它页面的id由用户自行定义
callbackFunction在相应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
    });
});
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号