Jquery自定义事件触发器

Jquery自定义事件触发器,jquery,events,triggers,Jquery,Events,Triggers,我在理解自定义事件触发器时遇到一些问题。我有一些代码可以触发所有元素上的自定义事件(根据文档) $d是一个jquery对象 如果我像这样绑定到文档: $(document).on('modal:close',function(event,element) { console.log('Triggered'); }); $("#foo").on('modal:close',function(event,element) { console.log('Triggered'); })

我在理解自定义事件触发器时遇到一些问题。我有一些代码可以触发所有元素上的自定义事件(根据文档)

$d
是一个jquery对象

如果我像这样绑定到文档:

$(document).on('modal:close',function(event,element) {
    console.log('Triggered');
});
$("#foo").on('modal:close',function(event,element) {
    console.log('Triggered');
});
然后我的处理程序被称为“触发”到控制台的日志记录。但是,如果我将其绑定到一个特定元素,如下所示:

$(document).on('modal:close',function(event,element) {
    console.log('Triggered');
});
$("#foo").on('modal:close',function(event,element) {
    console.log('Triggered');
});
然后,永远不会捕获触发器,也不会记录任何内容

我是否遗漏了文档中的某些内容,$.event.trigger('foo')没有对所有可能正在侦听的元素调用所述事件


提前感谢

文档似乎是错误的,并且在现代jQuery中无法触发所有元素。此时,我已经实现了发布/订阅模式,并将继续使用该模式,直到找到更好的解决方案。

这将起作用:

$d.trigger('modal:close');

它似乎在两个元素上引发事件:。你能提供更多关于你的代码的信息吗?他试图用$.event.trigger('modal:close',[$d])触发它;这只会触发文档。你的代码和我的不同。这是我在你的小提琴上更新的版本。看起来文档是错误的,在现代jQuery中,触发所有元素是不可用的。在这一点上,我已经实现了一个发布/订阅模式,在找到更好的解决方案之前,我将一直这样做。