jQuery事件命名空间是否包含破折号(连字符)?我有很长的命名空间,我想用破折号将它们分开,是否可能?我没有在http://api.jquery.com/unbind/找到任何文档。你知道它在哪里记录了吗?
代码是这样的:
var close_menu_event_element = $('{selector}');
var event = 'click.our-top-menu'; // Can be also 'click.our-compose-menu'
if (close_menu_event_element.length > 0) {
close_menu_event_element.unbind(event);
if (typeof(func) === "function") {
close_menu_event_element.bind(event, func);
}
}
更新:使用破折号命名空间在Chrome 41.0.2272.101 m中绑定和取消绑定工作,但我想知道它是否适用于任何带有jQuery的浏览器?我们正在使用jQuery 2.1.1。
答案 0 :(得分:2)
我想知道它是否适用于任何带有jQuery的浏览器
是的,它可以在所有主流浏览器中正常运行。所有用于解析命名空间的jQuery都是由.
字符拆分选择器字符串。像这样:
namespaces = ( tmp[2] || "" ).split( "." ).sort();
这里没什么好看的,split方法可以在任何地方使用,如果你想在命名空间子字符串中使用-
或@
。
以下是最佳文档:source code。
答案 1 :(得分:1)
不确定jQuery是否能解决这个问题,但是根据.on()
的jQuery文档,答案为否。
命名空间应仅包含大写/小写字母和数字。