参考:http://www.ituring.com.cn/article/467css
概念:性能
什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来作,这个事件原本是加在某些元素上的,然而你却加到别人身上来作,完成这个事件。
举个列子:有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三我的在公司门口等快递;二是委托给前台MM代为签收。现实当中,咱们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递)。前台MM收到快递后,她会判断收件人是谁,而后按照收件人的要求签收,甚至代为付款。这种方案还有一个优点,那就是即便公司里来了新员工(无论多少),前台MM也会在收到寄给新员工的快递后核实并代为签收。this
原理:spa
利用冒泡的原理,把事件加到父级上,触发执行效果。code
做用:对象
1.性能要好
2.针对新建立的元素,直接能够拥有事件blog
事件源 : seo
跟this做用同样(他不用看指向问题,谁操做的就是谁),event对象下的事件
使用情景:rem
•为DOM中的不少元素绑定相同事件;
•为DOM中尚不存在的元素绑定事件;
JS的事件委托
Jquery的事件委托
$(function(){ $('#ul1,#ul2').delegate('li','click',function(){ if(!$(this).attr('s')) { $(this).css('background','red'); $(this).attr('s',true); }else { $(this).css('background','#fff'); $(this).removeAttr('s'); } }) });
最新on()方法取替了delegate()方法
$(function(){ $('#ul1,#ul2').on('click','li',function(){ if(!$(this).attr('s')) { $(this).css('background','red'); $(this).attr('s',true); }else { $(this).css('background','#fff'); $(this).removeAttr('s'); } }) });