JS---事件绑定、监听、委托

事件绑定

在JS中,有三种常用的绑定事件的方法:
1、在DOM元素中直接绑定。

 <!-- 括号不能省 -->
    <button onclick="fn()">点击</button>
  <script>
        function fn() {
            console.log('111');
        }
     
    </script>

2、在JS中绑定。



 <button id='btn2'>方式二点击</button>

  <script>
      
        //特点  兼容性好 绑定多个事件时 以最后一个为准
        document.getElementById('btn2').onclick = function () {
            console.log('type 02');
        }
      
    </script>

3、绑定事件监听函数。


 <button id='btn2'>方式二点击</button>
  
  <script>
      
        document.getElementById('btn3').addEventListener('click',function(){
            console.log('type 03');
        })

      
    </script>

事件监听

  • w3c定义3个事件阶段,依次是捕获、目标、冒泡
    语法 el.addEventListener(event,fn,useCapture)
    event 必须 事件名 fn 必须 事件触发时执行的函数 useCapture 可选 执定事件是否在捕获或者冒泡阶段执行。
    true 捕获 false 冒泡 默认false

  • addEventListener() 方法特点
    第三个参数可以控制指定事件是否在捕获或冒泡阶段执行
    可以绑定多个事件 不会覆盖 先绑定先执行
    使用removeEventListener()来移除绑定过的事件
    IE6-8不兼容
    一个完整的JS事件流是从window开始,最后回到window的.


    事件流模型

事件委托

     利用冒泡的原理,把事件加到父元素或者祖先元素上,触发执行效果。
        var btn2 = document.getElementById('btn2')
        window.addEventListener('click',function(e){
            e = e||window.e;
            var target = e.target || window.srcElement;
            if(target == btn2){
                console.log('按钮2的委托');
            }
        })
  • 事件委托的特点
    1、提高JS性能
    2、动态的添加DOM元素
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容