zoukankan      html  css  js  c++  java
  • 函数语法:Js之on和addEventListener的使用与不同

    一、addEventListener语法

    DOM标准:elem.addEventListener("事件名",函数对象,是否在捕获阶段触发)
    ---是否在捕获阶段触发=  true/false,捕获true,冒泡false[开发中都大多都用false]
    addEventListener注意事项:
    1.特别说明addEventListener不被IE9以下兼容,IE9以下用使用attachEvent()
    obj.attachEvent(event,funtionName);
    参数:
    event:事件类型(需要写成“onclick”前面加on,这个与addEventListener不同)
    funtionName:方法名(要参数是也是需要使用匿名函数来传参)
    

    二、addEventListener与on的区别

    1.on事件会被后面的on的事件覆盖
    ///addEventListener不被覆盖,可移除事件
    /结果1,2
    btn.addEventListener("click",f1,false);
    btn.addEventListener("click",f2,false);
    //btn.removeEventListener('click',f1,false);//移动f1,不执行
    function f1(){
        alert(1)
    }
    function f2(){
        alert(2)
    }
    
    //on后一个覆盖前一个,结果2,不能移动事件
    btn.onclick=f1;
    btn.onclick= f2;
    function f1(){
        alert(1)
    }
    function f2(){
        alert(2)
    } 

    三、addEventListener的IE9以下不兼容

    querySelector 和 querySelectorAll 方法很好用,可惜IE6、IE7不支持,document.getElementById都兼容
    var  obtn = document.getElementById('tabs');
    addEvent(obtn,'click',function(){
        alert("a")
    })
    // 添加事件监听
    function addEvent(element, eventType, callback){
        if(element.addEventListener){
            element.addEventListener(eventType, callback, false);
        } else if(element.attachEvent){
            element.attachEvent('on' + eventType, callback);
        } else {
            element['on' + type] = callback;
        }
    }
    //这样写也语法也对
    obtn['onclick']=function(){
        alert(1111111)
    }
  • 相关阅读:
    ES6:Iterator遍历器
    前端:对BFC的理解
    前端:性能优化之防抖与节流
    ES6新增数据类型Symbol
    ajax和fetch、aixos的区别
    我对js数据类型的理解和深浅(copy)的应用场景
    egg的基本使用
    前端:css3的过渡与动画的基础知识
    Java基础篇之类
    JAVA基础篇之Scanner
  • 原文地址:https://www.cnblogs.com/liubingyjui/p/10213787.html
Copyright © 2011-2022 走看看