通过js事件委托给后来添加的元素加点击事件
程序员文章站
2022-05-06 10:05:32
...
有的元素可以第一次加载的时候并没有存在页面中,可是我们经过一些操作之后追加到dom树上,这个时候我们要是能提前添加上事件就好了。
废话不多说还是,直接拿例子来说事情
// 引入jquery库 方便进行dom操作
需求就是 页面有一个按钮 点击生成一个p元素 然后点击p元素弹出一个hello world
事实上 此时p元素并不在我们的dom树上
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.11.3/jquery.js"></script>
<div></div>
<button class="creat">生成p标签</button>
<script>
$('.creat').on('click',function(){
$('div').html('<p class="p1">点我试试看</p>');
})
</script>
我们直接根据p元素的类名进行绑定的话 事件是不会生效,都知道我们的js代码是顺序执行了,它根据 $(’.p1’) 在页面上找到这个元素 是不会给这个元素进行事件绑定的
$('.p1').on('click',function(){
alert('hello world')
})
这个我们可以同时 事件委托的方式进行解决,利用冒泡机制进行事件的绑定,不确定他会在哪个元素下 就卸载body上 这个是百分百可以确定的,毕竟元素都是在 body中包括着,事件委托要求元素并非一定在dom树上,也可以在未来的一个时刻上加入dom树,事件都是成立,这样就实现了上面的需求
$(document.body).on('click','.p1',function(){
alert('hello world');
})
上一篇: Layui中layer弹出层右上角X关闭按钮样式修改
下一篇: 浅谈事件委托
推荐阅读
-
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
-
由JS for 循环中为元素添加点击事件到JS 中的事件委托
-
通过js事件委托给后来添加的元素加点击事件
-
通过js获取元素表单以及遍历dom树和对元素的增删改查js操作内容演练实战了留言板的操作并对自定义属性: dataset对象初步的了解以及对js操作class和classList属性对象事件的添加与删除练习与了解
-
通过js获取元素表单以及遍历dom树和对元素的增删改查js操作内容演练实战了留言板的操作并对自定义属性: dataset对象初步的了解以及对js操作class和classList属性对象事件的添加与删除练习与了解
-
JS实现为动态添加的元素增加事件功能示例【基于事件委托】