视频链接视频
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>事件的委派</title>
<style type="text/css">
#u1{
background-color: #6495ED;
}
</style>
<script type="text/javascript">
window.onload=function(){
/**
* 事件的委派:
* 将元素绑定给一个元素的共同的祖先元素,这样当后代元素的事件触发时,会一直冒泡到祖先元素
* 从而通过祖先元素的响应函数来处理事件
* 事件委派是利用了冒泡,通过委派可以减少事件绑定的次数,提高程序的性能
*/
var btn01=document.getElementById("btn01");
var u1=document.getElementById("u1");
btn01.onclick=function(){
var li=document.createElement("li");
li.innerHTML="<a href='javascript:;' class='link'>超链接</a>";
u1.appendChild(li);
}
var allA=document.getElementsByTagName("a");
// for(var i=0;i<allA.length;i++){
// allA[i].οnclick=function(){
// alert("!");
// }
// }
/*
* 我们希望只绑定一次事件 可以应用到多个元素上,即使元素是后添加的
* 我们可以尝试将其绑定给元素共同的父元素
* 为ul绑定一个单击响应函数
*/
u1.onclick=function(event){
//如果触发事件的对象是期望的元素 则执行 否则不执行
event=event||window.event;
if(event.target.className=="link"){
alert("我是ul的单击响应函数");
}
}
}
</script>
</head>
<body>
<button id="btn01">按钮1:点击按钮添加超链接</button>
<ul id="u1">
<li><a href="javascript:;" class="link">超链接</a></li>
<li><a href="javascript:;" class="link">超链接</a></li>
<li><a href="javascript:;" class="link">超链接</a></li>
<li><a href="javascript:;" class="link">超链接</a></li>
</ul>
</body>
</html>