jquery 使用绑定与点击

2023-12-24

我遇到过几种在 jquery 中处理点击事件的方法:

bind:

$('#mydiv').bind('click', function() {
    ...
});

click:

$('#mydiv').click(function() {
   ...
}

on:

$('mydiv').on('click', function() {
   ...
}

两个问题:

  1. 他们还有其他方法吗?
  2. 我应该使用哪一个,为什么?

UPDATE:

正如每个人都提出了有用的建议,我应该更好地阅读文档,并发现我应该使用:

on() 或 click(),

这实际上是同一件事。

但是,没有人解释为什么不再推荐使用 bind ?我可能会因为在某个地方遗漏了明显的地方而得到更多的反对票,但我在文档中找不到原因。

UPDATE2:

'on' 具有能够将事件处理程序添加到动态创建的元素的有用效果。例如

$('body').on('click',".myclass",function() {
    alert("Clicked On MyClass element");
});

此代码向类为“myClass”的元素添加一个单击处理程序。但是,如果稍后动态添加更多 myClass 元素,它们也会自动获取单击处理程序,而无需显式调用“on”。据我了解人们所说,这也更有效(参见下面西蒙斯的回答)。


从文档bind and click :

bind http://api.jquery.com/bind/ :

从 jQuery 1.7 开始,.on() 方法是首选方法 将事件处理程序附加到文档。

来源 http://code.jquery.com/jquery-latest.js明确表示没有理由使用bind,因为这个函数只调用更灵活的on功能甚至更短:

bind: function( types, data, fn ) {
    return this.on( types, null, data, fn );
},

所以我建议,就像 jQuery 团队一样,忘记旧的bind功能,现在没用了。它仍然存在只是为了与旧代码兼容。

click http://api.jquery.com/click/ :

该方法是 .on('click', handler) 的快捷方式

当然,这个快捷方式的功能和灵活性不如on函数并且不允许委托,但它可以让您在应用时编写更短且可以说更具可读性的代码。在这一点上意见不一:一些开发人员认为应该避免它,因为它只是一个捷径,而且还有一个事实是您需要将其替换为on既然使用了委托,为什么不直接使用on更加一致?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery 使用绑定与点击 的相关文章