【问题标题】:jQuery alphabetizes namespaces with multiple separatorsjQuery 使用多个分隔符对命名空间进行字母排序
【发布时间】:2018-04-02 04:19:54
【问题描述】:
$(document).on('a.b.c', function(e) {
    console.log(e.namespace)
}).trigger('a.b.c')

$(document).on('a.c.b', function(e) {
    console.log(e.namespace)
}).trigger('a.c.b')

产生完全相同的输出:

b.c

为什么会这样,我该如何预防?我正在使用 jQuery 1.7。

【问题讨论】:

  • 我相信 a.b.c 正在创建两个不同的命名空间,bc,如果您尝试使用上面的 .trigger('a.c').trigger('a.b'),您会看到。如果你想要一个名为 b.c 的命名空间,你可以改用 b-c 吗?

标签: javascript jquery namespaces


【解决方案1】:

事件命名空间没有嵌套。您正在创建两个命名空间,bc,它们都包含事件 a。顺序无关紧要,所以 jQuery 不会保留它。它将事件规范化,因此如果您为 a.b.ca.c.b 定义处理程序,它会识别出它们实际上绑定的是同一个事件,并且可以将它们放在其内部事件绑定数据的同一个条目中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2022-06-12
  • 1970-01-01
  • 2011-01-27
  • 2011-02-07
  • 2021-03-30
  • 2013-01-20
相关资源
最近更新 更多