我遇到了几种在 jquery 中处理点击事件的方法:
绑定:
$('#mydiv').bind('click', function() {
...
});
点击:
$('#mydiv').click(function() {
...
}
上:
$('mydiv').on('click', function() {
...
}
两个问题:
- 他们还有其他方法吗?
- 我应该使用哪一个,为什么?
更新:
正如每个人都乐于建议的那样,我应该更好地阅读文档,并发现我应该使用:
on() 或 click(),
这实际上是同一件事。
但是,没有人解释为什么不再推荐 bind ?我可能会因为在某处遗漏明显的东西而受到更多的反对,但我在文档中找不到这样做的原因。
更新2:
'on' 具有能够将事件处理程序添加到动态创建的元素的有用效果。例如
$('body').on('click',".myclass",function() {
alert("Clicked On MyClass element");
});
此代码将单击处理程序添加到具有“myClass”类的元素。但是,如果稍后动态添加更多 myClass 元素,它们也会自动获取点击处理程序,而无需显式调用“on”。据我了解人们所说,这也更有效(见下面的西蒙斯回答)。