jQuery on和click方法的区别

36

我知道on方法应该替换live, delegate等方法。但是在当前使用click事件的地方使用它是否有意义呢?例如在非动态生成的元素上。

1个回答

28

并没有特别需要替换click(),因为在jQuery源代码中,它会将所有“快捷方式”事件处理程序(如click()keyup()等)转换为on("event", fn)


2
从文档中可以看到:“有一些事件的速记方法,例如.click(),可用于附加或触发事件处理程序。有关速记方法的完整列表,请参见事件类别”。因此答案是否定的,就像@Rory所说的那样。 - Derk Arts
9
就像以前不用使用.bind("click")代替.click()一样,现在也不需要使用.on("click")代替.click() - Andreas Eriksson
1
但是缩写方法 .click() 将会调用 .on(),然后将会在根层级附加事件处理程序并且冒泡阶段将遍历所有从元素到根的结构。通过使用 .on() 直接,你可以将点击事件监听器附加到立即父节点上,这将减少冒泡阶段,但在点击事件的情况下,我认为这只会有非常小的改进。 - Samuel
2
算了吧,它将绑定到DOM中的元素本身。脑抽了!!:( - Samuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接