gpt4 book ai didi

javascript - jquery 使用绑定(bind)与点击

转载 作者:IT王子 更新时间:2023-10-29 03:00:29 25 4
gpt4 key购买 nike

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

绑定(bind):

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

点击:

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

在:

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

两个问题:

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

更新:

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

on() 或 click(),

这实际上是同一件事。

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

更新 2:

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

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

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

最佳答案

来自 bindclick 的文档:

bind :

As of jQuery 1.7, the .on() method is the preferred method for attaching event handlers to a document.

The source明确表示没有理由使用 bind,因为这个函数只调用更灵活的 on 函数,甚至没有更短的函数:

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

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

click :

This method is a shortcut for .on('click', handler)

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

关于javascript - jquery 使用绑定(bind)与点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com