动态为第三方对象创建事件,绑定事件

来源:互联网 发布:中国黑人数量知乎 编辑:程序博客网 时间:2024/05/16 05:53

业务场景,在使用comet4j从服务器向客户端推送消息时,要在客户端页面对channel进行监听,因为项目需要需要动态监听channel,而在comet4j的demo里,对channel进行监听的代码如下:

var kbDom = document.getElementById('kb');
        JS.Engine.on({
                hello : function(kb){//侦听一个channel
                        kbDom.innerHTML = kb;
                }
        });
        JS.Engine.start('conn');
        JS.Engine.on(
        'start',function(cId,channelList,engine){
         alert('连接已建立,连接ID为:' + cId);
        });

本人想对hello位置进行动态处理,该怎么办呢。本人debug了下js代码,发现JS.Engine的结构如下:


从图中可以看到,hello和对应的fn被加到了JS.Engine.lStore里了,

而lStore从图中可以看到是一个Array,所以,本人用js代码对其进行了处理,动态添加了channel绑定事件,代码如下:

     var event = {};
     event.fn = function(data){//侦听一个channel
    addPointOnMap(data);
     };
     event.eventName = chanelName;
     
     JS.Engine.lStore.push(event); 
     JS.Engine.start('conn');

原创粉丝点击