1. 程式人生 > >jquery中的事件委託

jquery中的事件委託

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