jQuery:事件绑定bind delegate live on

jquery1.7后推出on()方法,放弃bind()

在jQuery1.9版本中,已经去掉了live和delegate方法

对应的事件注销方法unbind(),die()和undelegate()改用off()



jquery2.0版本后不再支持ie6、7、8,通常项目型公司为了照顾ie,依然得使用1.x版本,那么至少选择1.7以上版本,或者干脆1.X最高版

on的好处是,他不仅仅作用于当前绑定的元素,对于后期用脚本语言创建的元素也会有同样的绑定事件作用。

例子1:先添加dom,然后绑定事件,可以触发。

jQuery:事件绑定bind delegate live on_第1张图片


jQuery:事件绑定bind delegate live on_第2张图片
例子1运行结果

↑例子1结束

例子2 先绑定事件,再添加dom,没有触发。什么情况?!下方这句话假的?

on的好处是,他不仅仅作用于当前绑定的元素,对于后期用脚本语言创建的元素也会有同样的绑定事件作用。


jQuery:事件绑定bind delegate live on_第3张图片

例子3 再改造一下,点击后面添加的“呵呵呵呵”可以有弹出了。


jQuery:事件绑定bind delegate live on_第4张图片

所以,通过例子3,我们知道了如何给后添加的dom绑定事件,

$("父元素").on("事件","子元素",事件处理函数);

通常用在给后生成表格的事件绑定上。


jQuery:事件绑定bind delegate live on_第5张图片
jQuery:事件绑定bind delegate live on_第6张图片
jQuery:事件绑定bind delegate live on_第7张图片




详细看on绑定事件的说明

.on( events [,selector] [,data] ,handler)

  event:为事件类型,可以有多个事件类型。

selector:可选,过滤绑定在on方法上的后代元素。

  data:可选,当事件被触发时,它会传给event.data,从而可以加以利用

  handler:当事件被触发时,执行的方法。


当‘selector’被提供时,就是事件委托,事件触发时,直接绑定在on方法上的元素是不会触发该事件,而它指定的后代元素‘selector’就会利用冒泡机制,到直接绑定在on方法上的元素,给予处理。


参考:https://www.cnblogs.com/giggle/p/5365421.html

你可能感兴趣的:(jQuery:事件绑定bind delegate live on)