JavaScript事件命名约定

时间:2012-07-12 11:00:39

标签: javascript events naming-conventions

我们刚刚讨论了使用现有或过去的表单来表示事件名称。事实是,事件通常会在事情发生后触发:

store.save(object)
store.trigger("create", object)

我想知道是否有任何事件命名约定?使用过去的形式会更有意义,另一方面我觉得使用现有形式的用途更广泛。

这个主题有什么好的资源吗?您是否了解使用过去表单的已知JavaScript库?

2 个答案:

答案 0 :(得分:11)

我会以现在时态去。

大多数(如果不是全部)JavaScript框架似乎遵循JavaScript DOM事件API规定的约定;即为事件名称使用现在时。当我想到它时,这对我来说似乎是最自然的,尽管事件是在它们被触发后处理的。毕竟,该活动是在 事件名称上触发的。无论执行何种操作都会触发事件,它都会发生在事件循环的当前迭代中。换句话说:就事件循环而言,事件和触发事件的动作同时发生。

某些框架(例如YUI3)为自定义事件提供after挂钩和on挂钩。这种区别在YUI的属性库(amonst others)中使用:

  

使用on方法注册的听众会在之前通知已更新属性的存储状态。 [...]

     

由于在发生任何状态更改之前调用了这些侦听器,因此它们能够阻止状态发生更改[...]

     

使用after方法注册的听众会在 属性的存储状态更新后通知

来源:http://yuilibrary.com/yui/docs/attribute/index.html#on-vs-after

我个人并不知道任何使用过去时的事件名称的框架,但我不熟悉所有这些框架。

答案 1 :(得分:3)

Bootstrap为每个操作定义了两个事件。一个在开始动作时被触发并使用现在时(例如show)命名。另一个是在动作完成后触发的 - 这个动作以过去的分词形式(shown)命名。

所有内容都在http://getbootstrap.com/javascript/#js-events

下解释

修改

我想这种方法在动画发挥作用时有意义。