使用jQuery监听click事件的语义最正确的方法是什么

时间:2013-02-21 21:42:07

标签: jquery coding-style click

伙计们,请您使用jQuery以及每种方法的优点和缺点,让我对使用jQuery监听点击事件的正确方法有所了解:

.click(function() { ... });

.on('click', function () { ... });

我想确保我的代码一致。

4 个答案:

答案 0 :(得分:2)

来自jQuery click docs

  

此方法是.on('click', handler)

的快捷方式

因此,在这种简单形式中使用.click.on基本没有区别。但是,通过使用on,您可以获得更多选项。例如,您可以传递其他参数,例如selectordata。例如:.on( events [, selector ] [, data ], handler(eventObject) )例如,通过传递selector,您可以创建委派事件,这样即使将新项目添加到DOM,事件仍将被触发。仅仅因为这个原因,我几乎总是使用.on。但同样,使用.click(function() {.on('click', function () {功能相同。

答案 1 :(得分:1)

我想有人可能认为.on('click')非常“好”,因为它读起来更像英语而不是.click(),并且它没有额外的(微不足道的)另一个函数调用的开销。

答案 2 :(得分:1)

所有评论似乎都在用尽两种想法

.click(function() {

.on('click', function () {

是等效的(见http://api.jquery.com/click/)。

虽然编码风格本身可能是主观的,但一致性可能更容易解决。使用.on('click', function() {版本有机会更加一致,因为您可以通过on()方法传递各种事件。它有更多用例的事实增加了它的可用性并可能提高一致性。

答案 3 :(得分:1)

在元素本身或.on('click')上使用.click()是完全相同的,只是一个简短的方法。

如果您需要一种一致的方式来绑定点击事件,那么我认为您应该总是使用.on().....因为这也可以用来委托事件。这样你可以使用这个.on()来监听所有事件,而不必在使用.click(),。submit(),. delegate(),。live()等之间切换。

不仅如此,还可读性。 。('on','click'.....比其他委托方法更具可读性。