我收听了一个自定义事件:
$(document).on('MyCustomEvent', function(e, data) {
});
我的问题是,我想知道MyCustomEvent
何时在很多不同的功能中解雇了。我不想在每个函数中附加事件处理程序,因为它没有任何意义,可能会覆盖彼此。
我所追求的是这样的:
function one(){
//"when MyCustomEvent is fired, do stuff with the 'data' here"
}
function two(){
//"when MyCustomEvent is fired, do stuff with the 'data' here"
}
答案 0 :(得分:1)
将所有这些功能作为事件处理程序附加有什么问题?
$(document).on('MyCustomEvent', function(e, data) {
one(data);
});
$(document).on('MyCustomEvent', function(e, data) {
two(data);
});
您当然需要更改签名,以便函数接受data
作为参数。我已经单独附加了这两个函数,因为通常以模块化方式附加处理程序,这是唯一的方法。
您还可以使用事件名称空间,以便您可以彼此独立地分离处理程序:
$(document).on('MyCustomEvent.one', function(e, data) {
one(data);
});
$(document).on('MyCustomEvent.two', function(e, data) {
two(data);
});
$(document).trigger('MyCustomEvent'); // both functions are called
$(document).off('MyCustomEvent.one');
$(document).trigger('MyCustomEvent'); // only two() is called