0

我需要在 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);
});

这可能吗?

4

1 回答 1

1

您可以使用以下.triggerHandler方法:

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

$(NAMESPACE).triggerHandler("errorX");

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

于 2012-08-05T12:36:09.997 回答