伙计们,您能否给我一些关于使用 jQuery 监听点击事件的正确方法以及每种方法的优缺点的见解:
.click(function() { ... });
或者
.on('click', function () { ... });
我想确保我的代码是一致的。
伙计们,您能否给我一些关于使用 jQuery 监听点击事件的正确方法以及每种方法的优缺点的见解:
.click(function() { ... });
或者
.on('click', function () { ... });
我想确保我的代码是一致的。
来自 jQueryclick
文档:
这个方法是一个捷径
.on('click', handler)
所以使用.click
and.on
那种简单的形式基本上没有区别。但是,通过使用,on
您可以获得其他选项。例如,您可以传入其他参数,例如 aselector
或data
。例如:.on( events [, selector ] [, data ], handler(eventObject) )
通过传入一个selector
例子,你可以创建一个委托事件,这样即使在 DOM 中添加了新项目,该事件仍然会被触发。仅出于这个原因,我倾向于几乎总是使用.on
. 但同样,使用.click(function() {
or.on('click', function () {
是功能等效的。
我想有人可能会说这.on('click')
是微不足道的“更好”,因为它读起来更像英语而不是.click()
,并且它没有另一个函数调用的额外(微小)开销。
所有的评论似乎都耗尽了两者的想法
.click(function() {
和
.on('click', function () {
是等效的(参见http://api.jquery.com/click/)。
虽然编码风格本身可能是主观的,但一致性可能更容易解决。使用.on('click', function() {
版本有机会更加一致,因为您可以通过on()
方法传递各种事件。它有更多用例的事实增加了它的可用性并可能增加一致性。
在元素本身上使用 .click() 或 .on('click') 完全相同,只是一种简写方法。
如果您需要一种一致的方式来绑定单击事件,那么我认为您应该始终使用 .on()..... 因为它也可以用于委托事件。这样,您可以使用此 .on() 进行所有事件侦听,而不必在使用 .click()、.submit()、.delegate()、.live() 等之间切换。
不仅如此,还有可读性。.('on', 'click'.....比其他委托方法更具可读性。