自定义事件 API

Event

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
    });
});