我正在尝试将自定义事件绑定到jQuery对象,但它们不会触发。
示例:
environment = new function(){
this.events = $();
};
environment.events.on('preloader_done', function(){
console.log('environment event handler');
});
environment.events.trigger('preloader_done');
$(document).on('preloader_done', function(){
console.log('document event handler');
});
$(document).trigger('preloader_done');
在上面的示例中,仅触发绑定到文档的事件。见jsfiddle: https://jsfiddle.net/ymhp5c8k/
我找不到任何信息告诉我为什么这不起作用。
我知道我可以创建一个JavaScript对象然后通过jQuery绑定事件,如下所示:
environment = new function(){
this.jsobject = {};
};
$(environment.jsobject).on('preloader_done', function(){
console.log('jsobject event handler');
});
$(environment.jsobject).trigger('preloader_done');
但我想知道是否有人解释我如何将其设置为jQuery对象然后直接调用它而不必每次都将它包装在jQuery中。
答案 0 :(得分:3)
您只需要在构造函数
中创建一个jQuery对象environment = new function(){
this.events = $({}); // Here
};
environment.events.on('preloader_done', function(){
console.log('environment event handler');
});
environment.events.trigger('preloader_done');
这应该可以解决问题。