1、每个函数都是对象,占用内存。内存中的对象越多,性能越差。解决事件处理过多问题的办法是事件委托。
2、事件委托冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
<ul id="myLinks">
<li id="myLi1">text1</li>
<li id="myLi2">text2</li>
<li id="myLi3">text3</li>
</ul>
Ie9以下浏览器中的事件对象是放在全局中的window.event;
解决兼容性:event = event || window.event
事件委托(就是将事件绑定到父级/爷爷级对象上,通过事件对象的target属性来控制子级对象的改变):
event.target(点击的目标对象)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
td{
width: 100px;
height: 100px;
border:2px solid red;
}
</style>
</head>
<body>
<table >
<tr>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
</tr>
</table>
</body>
<script>
var tab = document.getElementsByTagName("table")[0];
tab.onclick = function (event) {
//点击子级对象改变颜色
event.target.style.backgroundColor = "black";
}
</script>
</html>免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理