博主信息
博文 21
粉丝 0
评论 0
访问量 14317
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
事件冒泡,事件代理的原理
P粉116103988
原创
851人浏览过

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>
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学