在命名空间中创建自定义事件

Create Custom events in Namespaces

本文关键字:自定义 事件 创建 命名空间      更新时间:2023-09-26

我需要在javascript NameSpace中创建自定义事件,但我不知道这是否可行。

我有一个这样的名称空间:

NAMESPACE = {
   var1 : 'value',
   var2 : 'value',
   initiate : function() {
      console.log('initiate');
   },
   clear : function(arg) {
      console.log('clear');
   }
   fail : function() {
       // Here i need to trigger the error event..
   }
}

使用以下方法创建事件:

var myEvent = new CustomEvent("errorX", {
  data: {
    param: "value"
  }
});
document.dispatchEvent(myEvent);
// In document.ready...
$(document).on('errorX', function(e) {
   console.log(e);
});

这是可行的,但我需要将addEventlistener附加到document,并且我希望将其附加到名称空间对象,例如:

$(NAMESPACE).on('errorX', function(e) {
    console.log(e);
});

这可能吗?

您可以使用.triggerHandler方法:

$(NAMESPACE).on('errorX', function(e) {
    console.log(e);
});
$(NAMESPACE).triggerHandler("errorX");

演示:http://jsfiddle.net/Enq9h/