将自定义事件调度到JS对象

时间:2014-04-11 18:38:24

标签: javascript jquery

我有一个对象构造函数,我想从中调度一个customEvent。然后我想从对象的实例中听它。 下面的代码是我想要完成的一个例子。任何人都知道如何做到这一点。

    var example = new Example();
    example.addEventListner('customEvent', tempMethod);

    function tempMethod(event){
    console.log("event working = ", event.message);
    }

    function Example(){

   // dispatch and event from here.
this.dispatchEvent('customEvent', 'message hello');
    }

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery从普通对象(或Example 实例)创建发射器。

var emitter = $({});
$(button).click(function() {
  emitter.trigger('customEvent');
});

您还可以使用energyeventemitter2等发射器库。

var emitter = energy();
button.addEventListener('click', function() {
  emitter.emit('customEvent');
}, false);

如果没有按钮(如您编辑过的问题),您可以在.on上创建自己的.off.emitExample.prototype方法,也可以从发射器实例like this