事件的委派

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <script type="text/javascript">
 8 
 9 window.onload=function()
10 {
11 //点击按钮以后添加超链接
12 var button1=document.getElementById("button1");
13 var ul=document.getElementById("ul");
14 
15 button1.onclick=function(){
16 var li=document.createElement("li");
17 li.innerHTML="<a href='javascricpt:;' class='link'>超链接</a>";
18 ul.appendChild(li);
19 };
20 
21 /*
22 为每一个超链接都绑定一个单击响应函数
23 这里我们为每一个超链接都绑定了一个单击响应函数,这种操作比较麻烦,
24 而且这些操作只能为已有的超链接设置事件,而新添加的超链接必须重新绑定
25 
26   var allA=document.getElementsByTagName("a");
27   for(var i=0;i<allA;i++){
28   allA[i].onclick=function(){
29 
30   };
31   }
32 我们希望只绑定一次事件,即可应用到多个元素上,即使元素后添加的
33 我们可以尝试将其绑定给元素的共同的祖先元素
34 
35 为ul绑定一个单击绑定函数
36 事件的委派
37 指将事件统一绑定给元素的共同的祖先元素,这样当后代元素上的事件触发时,
38 会一直冒泡到祖先元素
39 从而通过祖先元素的响应函数来处理事件,通过委派可以减少事件绑定的次数,提高程序的性能
40 事件的委派是利用了冒泡
41 */
42 ul.onclick=function(){
43 /*
44 如果触发事件的对象是我们期望的元素,则执行否则不执行
45 event中的target表示的触发事件的对象
46 */
47 if(event.target.className=="link")
48 alert("hi");
49 };
50 
51 };
52 
53   </script>
54 <style type="text/css">
55 #ul{
56 background-color:#bfa;
57 }
58 #span{
59 background-color:yellow;
60 }
61 
62 </style>
63 <body>
64 <button id="button1">添加超链接</button>
65 <ul id="ul">
66 
67     <li>
68         <a href="javascricpt:;"class="link">超链接</a>
69     </li>
70     <li>
71         <a href="javascricpt:;"class="link">超链接</a>
72     </li>
73     <li>
74         <a href="javascricpt:;"class="link">超链接</a>
75     </li>
76 </ul>
77 </body>
78 </html>

 

 

posted @ 2019-07-28 13:14  zuiaimiusi  阅读(119)  评论(0编辑  收藏  举报