我已经用了很长一段时间了,但大多数时候,我更喜欢更短的,不过,我只是想深入了解细节。我可能已经创建了错误的代码,我不想贡献和传播懒洋洋的代码在网络上。
所以告诉我:
它们之间有什么显著的优缺点,或者它就像冰激凌,不同的口味,但同样的“感觉良好”的效果?
鼓励每个人就这一问题发表自己的专家意见。
在此之前,非常感谢您。
发布于 2012-06-21 23:03:32
bind()添加1.0,live()添加1.3,delegate()添加1.4.2,on()添加1.7。
从1.7开始,on()是首选的用法,live()是不推荐的,根本不推荐使用。如果您使用的是1.3,请使用bind()而不是live(),在1.4.2时使用delegate()代替live(),而在1.7时使用on()代替其他任何一个。
关于$("selector").click。摘自click()
在前两个变体中,该方法是.bind(“单击”,处理程序)和.on(“单击”,处理程序)的快捷方式( jQuery 1.7 )。在第三个变体中,当不带参数地调用.click()时,它是.trigger("click")的快捷方式。
为什么使用on()而不是其他的?
on()是最新添加的,它加入了版本1.7中的jQuery库。on()有几个方法签名,使它能够交付相同的结果,以前的版本做,但改进和优化。要引用的话:
从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。
根本不需要再使用bind()或delegate()了。当然,使用这些方法不会有什么害处,但我总是认为,最新的添加是针对以前版本的任何缺点进行优化和改进的(除非文档中有其他说明,比如live())。
基于此,我建议改用on()。
不建议使用live()的原因更多的是因为它的缺点。引用live() 的话。
不再推荐使用.live()方法,因为较晚版本的jQuery提供了更好的方法,这些方法没有缺点。特别是,在使用.live()时会出现以下问题:
在调用documents.
时突出显示。
事件处理程序中调用document.
不过,文档中还有更多的好处。
附加资源
发布于 2012-06-21 23:01:23
在这种情况下,功能没有差别。然而,.on在jQuery 1.7中比.bind更可取,至于.click,它只是一个通用事件处理程序的缩写。
https://stackoverflow.com/questions/11148019
复制相似问题