「JavaScript」 基础知识要点及常考面试题(四)--- [事件相关方面]

事件的委托

所谓的事件委托,通过监听一个父元素,来给不同的子元素绑定事件,减少监听次数,从而提升速度。
eg:

<body>
    <ul id="isUl">
        <li id="li01">1</li>
        <li id="li02">2</li>
        <li id="li03">3</li>
    </ul>
    <script>
        function clickLi01() {
            alert('你点击了第1个li');
        }
        function clickLi02() {
            alert('你点击了第2个li');
        }
        function clickLi03() {
            alert('你点击了第3个li');
        }
        document.getElementById('isUl').addEventListener('click', function(event) {
            var srcID = event.target.id;
            if(srcID == 'li01'){
                clickLi01();
            }else if(srcID == 'li02') {
                clickLi02();
            }else if(srcID == 'li03') {
                clickLi03();
            }
        });
    </script>
</body>

new 做了什么操作

  1. 创建一个新对象,同时继承对象类的原型,即xxx.prototype
  2. 执行类的构造函数,同时将改实例上的属性和方法被this引用,即this指向新的构造函数
  3. 如果构造函数放回一个新对象,那么这个对象就会取代new出来的结果。如果构造函数没有return对象,即返回隐式的this

for of , for...in.. 的区别

https://www.jianshu.com/p/c43f418d6bf0

事件冒泡和事件捕获有什么区别

事件捕获:当触发子元素身上的事件,会先触发父元素,然后在传递给子元素
事件冒泡:当给父子元素的同一事件绑定方法时,触发子元素身上的事件,执行完毕之后,也会触发父级元素相同的事件。

事件委托

通过父节点事件来传播到子节点(事件捕获)
问:怎么判断你点了是第几个子节点

<!DOCTYPE html>
<html>
  <body>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </body>

  <script>
    window.onload = function() {
      let $ul = document.getElementsByTagName('ul')[0];
      let $lis = document.getElementsByTagName('li')
      $ul.addEventListener('click', function(e) {
        let target = e.target
        for(let i = 0; i< $lis.length; i++) {
            if (target === $lis[i]) {
                console.log('你点击了第', i + 1 , '个')
            }
        }
      });
    };
  </script>
</html>

移动端 click和touch事件的区别

移动端的touch click事件的理解

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,752评论 1 11
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,606评论 0 21
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 5,932评论 0 106
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,564评论 0 8
  • JavaScript语言精粹 前言 约定:=> 表示参考相关文章或书籍; JS是JavaScript的缩写。 本书...
    微笑的AK47阅读 688评论 0 3

友情链接更多精彩内容