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>')
发布了53 篇原创文章 · 获赞 55 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/dreams_deng/article/details/79260936