关于jQuery动态创建的元素,需要删除

https://img1.mukewang.com/5c5658ed0001afc007630613.jpg

其中


<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>

麻烦大神们帮忙答疑解惑。感谢啦。


收到一只叮咚
浏览 371回答 1
1回答

芜湖不芜

1、JS 没法给动态生成的元素绑定事件,因为总要先有元素再绑定2、JS 事件是冒泡机制,简单来说就是事件会响应在本元素节点和所有的父元素节点所以第一种用法就是这个原理,动态生成的 p 元素没法绑定事件,但是如果你点击触发了 click 事件,那么会冒泡到 父元素 div,在这个节点处理你可以搜索一下1、JS 事件冒泡2、JS 事件委托
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript