我试图将自定义事件绑定(bind)到 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');
在上面的示例中,仅触发绑定(bind)到文档的事件。参见jsfiddle: https://jsfiddle.net/ymhp5c8k/
我找不到任何信息来告诉我为什么这不起作用。
我知道我可以创建一个 JavaScript 对象,然后通过 jQuery 绑定(bind)事件,如下所示:
environment = new function(){
this.jsobject = {};
};
$(environment.jsobject).on('preloader_done', function(){
console.log('jsobject event handler');
});
$(environment.jsobject).trigger('preloader_done');
但我想知道是否有人能解释一下如何将其设置为 jQuery 对象,然后直接调用它,而不必每次都将其包装在 jQuery 中。
最佳答案
您只需要在构造函数中创建一个 jQuery 对象
environment = new function(){
this.events = $({}); // Here
};
environment.events.on('preloader_done', function(){
console.log('environment event handler');
});
environment.events.trigger('preloader_done');
这应该可以解决问题。
关于javascript - jQuery 对象上的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34061816/