提问人:Jimmy P 提问时间:10/21/2017 更新时间:10/21/2017 访问量:93
jQuery 使用多个分隔符按字母顺序排列命名空间
jQuery alphabetizes namespaces with multiple separators
问:
$(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')
生成完全相同的输出:
不列颠哥伦比亚省
为什么会这样,我该如何预防?我正在使用 jQuery 1.7。
答:
2赞
Barmar
10/21/2017
#1
事件命名空间不嵌套。您将创建两个命名空间 、 和 ,这两个命名空间中都包含事件。顺序无关紧要,因此 jQuery 不会保留它。它将事件规范化,以便如果您为 定义处理程序,并且它识别它们实际上绑定了相同的事件,并且可以将它们放在其内部事件绑定数据中的同一条目中。b
c
a
a.b.c
a.c.b
评论
0赞
Barmar
10/21/2017
命名空间不嵌套。他们就像班级一样。阅读 jQuery 文档:api.jquery.com/on/#event-names
评论
a.b.c
b
c
.trigger('a.c')
.trigger('a.b')
b.c
b-c