看了 阮一峰 的这篇文章:
jQuery最佳实践
其中第7点,事件的委托处理(Event Delegation),这部分提到委托到父级元素不如委托到document
这是为什么?
PHPz2017-04-10 14:41:26
委托到document对象上,就只有document对象作为事件的监听了。
委托到父级元素,遍历就少了好多层级,效率高。
当然,页面中监听器多了也不好。
我优化的原则就是:父级元素委托,不用document。
阿神2017-04-10 14:41:26
通过 冒泡机制 在document监听可以减少对单个事件的监听,这种做法感觉还是看你的页面结构还有代码结构,如果你的代码是类似于mvc的结构代码块的话,如果在document上面监听的话不好进行模块划分,而且页面监听的dom节点较多较乱,那么回调事件中必然存在着各种判断去确定元素,也是存在性能消耗的。
方法大家都知道,主要还是要看特定的项目情景,而不是照搬
PHP中文网2017-04-10 14:41:26
页面中很多地方都在委托 document,那势必在回调中需要判断事件来源以调用不同相应处理方法。
我的原则是,能不用委托就不委托,需要委托就委托最近的父级元素。
黄舟2017-04-10 14:41:26
我们项目之前就是全部委托在document上的,导致在IE6、8反应卡顿,我的原则和 @52lidan 一致,父级元素委托,不用document!