jQuery事件命名空间可以包含破折号吗?

时间:2015-03-25 10:05:08

标签: javascript jquery events namespaces

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。

2 个答案:

答案 0 :(得分:2)

  

我想知道它是否适用于任何带有jQuery的浏览器

是的,它可以在所有主流浏览器中正常运行。所有用于解析命名空间的jQuery都是由.字符拆分选择器字符串。像这样:

namespaces = ( tmp[2] || "" ).split( "." ).sort();

这里没什么好看的,split方法可以在任何地方使用,如果你想在命名空间子字符串中使用-@

以下是最佳文档:source code

答案 1 :(得分:1)

不确定jQuery是否能解决这个问题,但是根据.on()的jQuery文档,答案为

  

命名空间应仅包含大写/小写字母和数字。