jquery自定义事件命名约定

时间:2011-09-09 18:52:30

标签: jquery events naming-conventions

那么,他们是什么?

我的意思是,我知道有名字空间 - 但是如果我的事件名称太明显了,那就说submit,那么只添加名称空间submit.myns并不会阻止在标准{{1}时触发它触发了。

好的,我知道,submit是一个非常糟糕的例子,但如果我想使用与我正在使用的某个插件相同的名称?当我有大型网站,有很多自定义事件和大量插件时,这可能是一个问题,特别是如果我想保持事件名称简单而有意义。

那么你使用某种约定,比如前缀/后缀(如submit / myns:event)吗?或者也许我太担心,我的担忧是没有根据的?

编辑:

命名空间很棒,如果你必须对有界事件进行分组以便轻松解除绑定。但它的工作方式,无法确保处理程序myns_event仅由click.my触发。为此,我们必须将它命名为不同,例如click.my - 然后我们保留有意义的名称,我们知道它是我们的事件(并且不太可能有人使用它),我们仍然可以从标准中受益事件命名空间。

有些代码可以看到差异:http://jsfiddle.net/h2kuN/1/

1 个答案:

答案 0 :(得分:9)

命名空间解决了这个问题 - 但只有在每个人都使用它时

您可以为季节性插件绑定并触发christmas.adam,我可以绑定并触发christmas.bennett,我们不会干涉。但如果有人出现并触发christmas,那么我们的插件都会被触发。

这是因为如果将处理程序绑定到event.namespace,则触发event将触发您的处理程序。这在jQuery API文档中并不清楚,但从jQuery 1.7.1开始就是如此。

所以(除了可以轻松地同时取消绑定多个处理程序之外),命名空间用于保护其他代码,而不是你的代码。