jQuery事件委托

jQuery事件委托

绑定事件监听的问题:新加的元素没有监听

1.事件委托(委派/代理)

  * 将多个子元素(li)的事件监听委托给父辈元素(ul)处理

  * 监听回调是加在了父辈元素上

  * 当操作任何一个子元素(li)时,事件会冒泡到父辈元素(ul)

  * 父辈元素不会直接处理事件,而是根据event.target得到发生事件的子元素(li),通过这个子元素调用回调函数

2.事件委托的2方

  * 委托方:业主 li

  * 被委托方:中介 ul

3.使用事件委托的好处

  * 添加新的子元素,自动有事件响应处理

  * 减少事件监听的数量:n==>1

4.jQuery的事件委托API

  * 设置事件委托:$(parentSelector).delegate(childrenSelector,eventName,callback)

  * 移除事件委托:$(parentSelector).undelegate(eventName)

            //设置事件委托
            $('ul').delegate('li','click',function () {
                console.log(this)//<li></li>
            })
            //移除事件委托
            $('ul').undelegate('click')

  

原文地址:https://www.cnblogs.com/yangHS/p/10889898.html