在引入事件委託以前,首先來看下面這個例子:點擊改變li的背景顏色。node
<ul id="container"> <li>1</li> <li>2</li> <li>2</li> <li>3</li> <li>4</li> </ul>
window.onload = function () { var liLis = document.getElementsByTagName('li'); for (var i = 0; i < liLis.length; i++) { //addEventListener不兼容ie9如下版本,請自行用attachEvent作兼容處理 liLis[i].addEventListener('click', function (ev) { //兼容ie低版本 var ev = ev || window.event; var target = ev.target || ev.srcElement; target.style.background = 'red'; }, false) } }
window.onload = function () { var ul = document.getElementById('container'); //addEventListener不兼容ie9如下版本,請自行用attachEvent作兼容處理 ul.addEventListener('click', function (ev) { //兼容ie低版本 var ev = ev || window.event; var target = ev.target || ev.srcElement; //nodeName:找到元素標籤名 if (target.nodeName.toLowerCase() == 'li') { target.style.background = 'green'; } }, false) }