jquery中的事件委託
阿新 • • 發佈:2019-01-31
1. 什麼是事件委託:
子元素事件委託給父元素, 然後觸發事件的時候找到對應的event.target觸發元素進行的回撥函式執行,通過事件冒泡
功能: append以後的標籤新增事件
<div id="box">
<div class="a">a 的事件委託</div>
<br />
<br />
<br />
<div class="b">b的事件委託</div>
<br />
<br />
<br />
<div id="a">#a的事件委託</div>
<p>Click me!</p>
</div>
//1.7以後已經不 支援live了。
$('#a').live('click',function(){
alert('a');
})
$('#box').delegate('.a','click',function(){
alert('delegate' );
})
// 這裡表示a的事件通過#box父元素來來委託, 通過$(this)獲取的是觸發事件的子元素
//在jquery中事件委託只是找相應的event.target觸發元素進行的回撥函式執行,其他的並不關心。
// 現在通過on 來進行觸發事件委託
$('#box').on("click",'.a',function(){
alert('a事件');
// $(this)獲取的時候事件委託的子元素
$(this).removeClass('a').addClass('b');
});
$('#box' ).on("click",'.b',function(){
alert('b事件');
$(this).removeClass('b').addClass('a');
});
// 新增的標籤都可以觸發 on函式
$('#box').append('<div class="a" style="font-size: 30px;">我是新新增的div</div>')