jQuery使用多个分隔符按字母顺序排列名称空间

时间:2017-10-20 23:14:19

标签: javascript jquery namespaces

$(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。

1 个答案:

答案 0 :(得分:1)

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