代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>事件委托</title>
</head>
<body>
<ul>
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<li>55555</li>
</ul>
<script>
// 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
// ul有一万个li 进行事件绑定
// var itemli = document.getElementsByTagName('li')
// for (var i = 0; i < itemli.length; i++) {
// itemli[i].onclick = (function (n) {
// return function () {
// console.log(n + itemli[n].innerHTML)
// }
// })(i)
// }
var ul = document.querySelector('ul')
ul.onclick = function (e) {
e = e || window.event //这一行及下一行是为兼容IE8及以下版本
var target = e.target || e.srcElement
if (target.tagName.toLowerCase() === 'li') {
var li = this.querySelectorAll('li')
index = Array.prototype.indexOf.call(li, target)
alert(target.innerHTML + index)
}
}
var ul = document.querySelector('ul');
ul.addEventListener('click', function(e) {
// alert('点我应有弹框!');
// e.target 这个可以得到我们点击的对象
e.target.style.backgroundColor = 'pink';
})
// 点击下面的li变红
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。