我在理解自定义事件触发器时遇到一些困难。我有一些代码可以在所有元素上触发自定义事件(根据文档)
$.event.trigger('modal:close',[$d]);
$d
是一个 jquery 对象
如果我像这样绑定(bind)到文档:
$(document).on('modal:close',function(event,element) {
console.log('Triggered');
});
然后我的处理程序被称为将“已触发”记录到控制台。但是,如果我将它绑定(bind)到特定元素,如下所示:
$("#foo").on('modal:close',function(event,element) {
console.log('Triggered');
});
那么触发器就永远不会被捕获,并且不会记录任何内容。
我是否从文档中遗漏了一些内容,因为 $.event.trigger('foo') 不会在所有可能正在监听或不监听的元素上调用所述事件?
提前致谢
最佳答案
看来文档是错误的,并且在现代 jQuery 中无法触发所有元素。至此,我已经实现了发布/订阅模式,并将继续使用它,直到找到更好的解决方案。
关于Jquery 自定义事件触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29648118/