jq的click 与 on 的区别
<div>
<h1>Click</h1>
<button class="add">Click me to add new item</button>
<ul class="li">
<li>I am old item.<button class="delete">Delete</button></li>
<li>I am old item.<button class="delete">Delete</button></li>
<li>I am old item.<button class="delete">Delete</button></li>
</ul>
</div>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(".add").click(function(){
$(".li").append('<li>I am new item.<button class="delete">Delete</button></li>');
});
$(".delete").click(function(){
$(this).parent().remove();
});
</script> 上面的例子通过button添加的li无法删除,原因在于是新添加的HTML代码,没有绑定click事件,
解决方法:将click事件换成on事件
$(".li").on('click','.delete',function(){
$(this).parent().remove();
}); 关于on的更多解释:
on()函数用于为指定元素的一个或多个事件绑定事件处理函数。
此外,你还可以额外传递给事件处理函数一些所需的数据。
从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。
on()支持直接在目标元素上绑定事件,也支持在目标元素的祖辈元素上委托绑定。在事件委托绑定模式下,即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。
此外,该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。
要删除通过on()绑定的事件,请使用off()函数。如果要附加一个事件,只执行一次,然后删除自己,请使用one()函数。
相关推荐
lerdor 2020-08-31
谢育政 2020-07-28
mrandy 2020-07-04
sunnyxuebuhui 2020-06-16
Laxcus大数据技术 2020-06-13
fyggzb 2020-06-10
vivenwan 2020-06-06
zhangwentaohh 2020-05-25
韩学敏 2020-05-25
Andrea0 2020-05-17
xx0cw 2020-05-16
林大鹏 2020-05-12
CHINA华军 2020-05-11
talkingDB 2020-05-05
lysanderK 2020-04-19
zuixin 2020-04-19
jimgreatly 2020-04-10