on()函数和bind()函数之间有什么区别

时间:2013-08-06 10:29:07

标签: jquery

关于功能

$("selector").on("click", function(event){
//code to be executed
});

绑定功能

$("selector").bind("click", function(event){
//code to be executed
});

何时特别使用on function和bind函数?

2 个答案:

答案 0 :(得分:1)

来自文档:

  

从jQuery 1.7开始,.on()方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind()方法用于将事件处理程序直接附加到元素。处理程序附加到jQuery对象中当前选定的元素,因此这些元素必须存在于调用.bind()的位置。有关更灵活的事件绑定,请参阅.on()或.delegate()中对事件委派的讨论。

绑定仅在元素存在时才有效,on将它绑定到与选择器匹配的所有元素。 Docs.

$(document).on("click","selector", function(event){
//code applies to all elements matching the selector.
});

答案 1 :(得分:0)

都将事件处理程序附加到文档... bind将事件处理程序直接附加到元素(不委托)...所以绑定不适用于动态添加的元素,而on就是这样......它使用事件委托。

使用你得到的代码.. onbind之间没有任何区别。两者都做同样的事情(将点击处理程序附加到所选元素)

至于When to use on function and bind function especially?

简单的答案是,

  

如果您使用的是jquery 1.7+。使用on(),   如果您的元素是动态添加的,请使用.on()