jQuery对象的事件处理程序

时间:2015-12-03 09:09:26

标签: javascript jquery events

我正在尝试将自定义事件绑定到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中。

1 个答案:

答案 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');

这应该可以解决问题。