Blogger Information
Blog 21
fans 0
comment 0
visits 9411
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
事件冒泡,事件代理的原理
P粉116103988
Original
477 people have browsed it

1. 事件冒泡,事件代理的原理是什么,实例演示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>事件冒泡,代理</title>
  8. </head>
  9. <body>
  10. <button onclick="show()">点击</button>
  11. <script>
  12. function show(){
  13. // 事件对象:
  14. console.log(event);
  15. // 事件主体:
  16. console.log('事件主体:',event.currentTarget);
  17. console.log('事件目标', event.target);
  18. // 无事件委托,二者一样;
  19. console.log(event.currentTarget===event.target);
  20. }
  21. </script>
  22. <ul class="list">
  23. <li data-index="1">item1</li>
  24. <li data-index="2">item2</li>
  25. <li data-index="3">item3</li>
  26. <li data-index="4">item4</li>
  27. <li data-index="5">item5</li>
  28. </ul>
  29. <script>
  30. // let items= document.querySelectorAll('li');
  31. // // items.forEach((item)=>(item.onclick=()=>console.log(event.currentTarget)));
  32. // items.forEach(
  33. // function (item){
  34. // item.onclick = function(){
  35. // console.log(event.currentTarget);
  36. // // 阻止冒泡 :
  37. // event.stopPropagation();
  38. // }
  39. // }
  40. // );
  41. // 事件冒泡:就是父级如果和子级有同样的事件,那么子级的事件会传递到父级
  42. // 事件冒泡的关键点:1,要有父级 2.事件相同:
  43. // document.querySelector('ul').onclick = () => console.log('li的父级ul',event.currentTarget);
  44. // document.body.onclick = () => console.log('ul的父级body:';event.currentTarget);
  45. // window.onclick = () => console.log(event.currentTarget);
  46. // 事件代理委托: 将子元素的事件委托到父级触发
  47. let ul = document.querySelector('ul');
  48. ul.onclick = function (){
  49. // 事件主体就是父级:event.currentTarget:
  50. // 事件目标就是子级:event.target:
  51. // event.target.dataset.index可以查看绑定的是哪一个子级
  52. console.log(event.target,event.target.dataset.index);
  53. console.log(event.currentTarget);
  54. // 当有委托的情况下二者不一样
  55. console.log(event.target === event.currentTarget);
  56. };
  57. </script>
  58. </body>
  59. </html>

2. 自选5个课堂中未提及的字符串API,进行演示(MDN)

  1. <script>
  2. let str = 'PHP中文网';
  3. let str2 = '你好 朱老师';
  4. let str3 = ' 135 ';
  5. let str4 = 'HelloWorld';
  6. let str5 = 'helloPhp';
  7. // console.log(str);
  8. // console.log(str.length) ;
  9. // console.log(str[0],str[1],str[2]);
  10. // console.log(str.charAt(1),str[1]);
  11. // console.log(str.indexOf('中'));
  12. // console.log(str.search('中'));
  13. // console.log(str.concat('php.cn'));
  14. // console.log(str.replace('中文网','.cn'));
  15. // console.log(str.slice(0,2));
  16. // console.log(str.substr(0,4));
  17. // console.log(str.substr(-3,2));
  18. // 字符串的拼接:concat()
  19. console.log(str.concat(str2));
  20. // 从后面检索字符串:lastIndexOF:
  21. console.log(str2.lastIndexOf('老'));
  22. // 截取字符串:substring
  23. console.log(str2.substring(0,5));
  24. // 将字符串拆开为数组:split
  25. console.log(str.split(str[1]));
  26. // 去除字符串中的空白符:trim
  27. console.log(str2+str3);
  28. console.log(str2 + str3.trim());
  29. // 大小写转换:toUpperCase(),toLowerCase()
  30. // 全转为大写:
  31. console.log(str4.toUpperCase());
  32. // 全转为小写:
  33. console.log(str4.toLocaleLowerCase());
  34. </script>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post