事件委託就是利用事件冒泡,只指定一個事件處理程序,就能夠管理某一類型的全部事件。node
在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'); }); });