35

我们刚刚讨论了事件名称是使用现在形式还是过去形式。事实是,事件通常在发生某些事情后触发:

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

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

有没有关于这个主题的好资源?你知道已知的 JavaScript 库使用过去的形式来表示它的事件吗?

4

2 回答 2

17

我会用现在时。

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

一些框架,例如YUI3,提供了一个after钩子以及一个on用于自定义事件的钩子。这种区别在 YUI 的属性库中使用(除其他外):

on使用该方法注册的侦听器会在属性的存储状态更新之前收到通知。[...]

由于这些侦听器在任何状态更改发生之前被调用,它们有能力防止状态更改发生 [...]

after使用该方法注册的侦听器会在属性的存储状态更新后收到通知。

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

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

于 2012-07-12T11:25:25.113 回答
4

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

一切都在http://getbootstrap.com/javascript/#js-events下进行了解释

编辑

我想当动画开始发挥作用时,这种方法是有意义的。

于 2014-07-03T09:24:18.193 回答