事件代理利用了事件冒泡的原理,通过在父级元素绑定handler来监听子元素上触发的事件,从而减少了事件绑定的次数,也能够为动态添加的元素绑定事件:
~~~js // 普通绑定,当页面渲染完成时,为所有btn1添加hanlder,之后添加的btn1则没有效果 $('.btn1').click(function() {}); // 事件代理,所有btn2上触发的事件会冒泡到document上触发 $(document).on('click', '.btn2', function() {}); ~~~