事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能;
$('#ul').on('click', function (e) { let dom = e.target; while (dom.nodeName !== 'LI'){ dom = dom.parentNode; } AjaxSer.setUserHistory(dom.getAttribute('LPID'),function () { window.location.href = dom.getAttribute('URL'); }); });