【问题标题】:Jquery Custom event triggersJquery 自定义事件触发器
【发布时间】:2015-04-15 10:43:44
【问题描述】:

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

$.event.trigger('modal:close',[$d]);

$d 是一个 jquery 对象

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

$(document).on('modal:close',function(event,element) {
    console.log('Triggered');
});

然后我的处理程序被称为将“已触发”记录到控制台。但是,如果我将它绑定到这样的特定元素:

$("#foo").on('modal:close',function(event,element) {
    console.log('Triggered');
});

然后触发器永远不会被捕获并且没有任何记录。

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

提前致谢

【问题讨论】:

  • 它似乎在小提琴中引发了两个元素的事件:jsfiddle.net/ogmo5dL5。您能否提供有关您的代码的更多信息。
  • 他尝试用 $.event.trigger('modal:close',[$d]); 触发它仅触发记录。
  • 你的代码和我的不一样。这是我在你的小提琴上更新的版本jsfiddle.net/ogmo5dL5/1
  • 看来文档是错误的,并且在现代 jQuery 中无法触发所有元素。在这一点上,我已经实现了一个发布/订阅模式,并将继续使用它,直到找到更好的解决方案。

标签: jquery events triggers


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这将起作用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2012-06-08
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2012-10-09
      相关资源
      最近更新 更多