其中<script> $("div").on("click","p",function(){ alert($(this).html()); })</script><script> $("p").on("click",function(){ alert($(this).html()); })</script>一,请问这两种方法有什么区别?二,第一种方法那样写的好处是什么三,在网上查了一下,如果是动态创建的元素,比如上面的p,动态创建的。需要用第一种方式来绑定删除。 而且是需要绑定在父元素div上来写删除的语句。不太懂为何要绑定在div上进行删除,为啥不能直接绑定在this点击的元素上删除。虽然我测试那样确实没用,但是不知道其中的道理。<script> $("div").on("click","p",function(){ alert($(this).parent().remove()); })</script>麻烦大神们帮忙答疑解惑。感谢啦。
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
1、JS 没法给动态生成的元素绑定事件,因为总要先有元素再绑定
2、JS 事件是冒泡机制
,简单来说就是事件会响应在本元素节点和所有的父元素节点
所以第一种用法就是这个原理,动态生成的 p 元素没法绑定事件,但是如果你点击触发了 click 事件,那么会冒泡到 父元素 div,在这个节点处理
你可以搜索一下
1、JS 事件冒泡
2、JS 事件委托
添加回答
举报
0/150
提交
取消