如下:在父類中添加click事件,當點擊子類的時候通過冒泡原理觸發(fā)父類事件。
<!-- html頁面 --><ul id="parent-list"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> <li>Item 4</li></ul>JQuery: // delegate 的方法需要三個參數(shù),一個選擇器,一個事件名稱,和事件處理函數(shù)$("#parent-list").delegate("li", "click", function(){ if (this.nodeName.toLowerCase() == 'li') { alert(this.innerHTML); }});$("#parent-list").bind('click', function(e) { var el = e.target; if (el.nodeName.toLowerCase() == 'li') { alert(el.innerHTML); }});$("#parent-list").click(function(e) { var el = e.target; if (el.nodeName.toLowerCase() == 'li') { alert(el.innerHTML); }});JavaScript:window.onload = function() { var oUl = document.getElementById("parent-list"); oUl.onclick = function(ev) { var ev = ev || window.event; var target = ev.target || ev.srcElement; if (target.nodeName.toLowerCase() == 'li') { alert(target.innerHTML); } }}// addEventListener() 方法用于向指定元素添加事件句柄。window.onload = function() { var oUl = document.getElementById("parent-list"); oUl.addEventListener('click', function() { var ev = ev || window.event; var target = ev.target || ev.srcElement; if (target.nodeName.toLowerCase() == 'li') { alert(target.innerHTML); } });}優(yōu)點: 1、節(jié)省內(nèi)存占用,減少事件注冊,提高性能。 2、可以實現(xiàn)當新增子對象時無需再次對其綁定事件,對于動態(tài)內(nèi)容部分尤為合適
缺點:事件代理的應用常用應該僅限于上述需求下,如果把所有事件都用代理就可能會出現(xiàn)事件誤判,即本不應用觸發(fā)事件的被綁上了事件。
新聞熱點
疑難解答