jQuery事件绑定函数:on()与bind()的差异

jQuery从1.7+版本开始,提供了on()和off()进行事件处理函数的绑定和取消。on()和bind()这两个方法有相同的地方也有不一样的地方.函数

bind(type,[data],fn);

on(type,[selector],[data],fn);

    二者的区别就在因而否支持selector这个参数值。若是使用on的时候,不设置selector,那么on与bind就没有区别了。this

e<div id="parent">
       <input type = "button" value="a" id=“a”>
       <input type = "button" value="b" id=“b”>
</div>

  上面的代码中,若是咱们使用bind()在parent上绑定了click事件处理函数,当点击a或者b按钮的时候,都会执行事件处理函数。若是咱们但愿点击a的时候触发,点击b的时候不触发,那么能够使用on,代码以下:spa

$("#parent").on("click","#a",function(){
    alert($(this).attr("id"));
})

bind方法没法实现该功能。code

还有一点须要注意:on绑定的事件处理函数,对于将来新增的元素同样能够的,和delegate效果相同,而bind则不行。blog

 

delegate用法与on()相同,只是参数的顺序不一样:事件

delegate([selector],type,[data],fn);

还有一个live()方法,在jQuery1.9中被移除了,彻底能够使用on()来替代它得做用,不建议使用此方法。input

相关文章
相关标签/搜索