通過js事件委託給後來添加的元素加點擊事件

有的元素可以第一次加載的時候並沒有存在頁面中,可是我們經過一些操作之後追加到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');
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章