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