欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过js事件委托给后来添加的元素加点击事件

程序员文章站 2022-05-06 10:05:32
...

有的元素可以第一次加载的时候并没有存在页面中,可是我们经过一些操作之后追加到dom树上,这个时候我们要是能提前添加上事件就好了。
废话不多说还是,直接拿例子来说事情
// 引入jquery库 方便进行dom操作
通过js事件委托给后来添加的元素加点击事件
需求就是 页面有一个按钮 点击生成一个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');
})