• addEventListener 和attachEvent用法


    对于IE的attachEvent方法可能大家都比较熟,现在说说FireFox的addEventListener的用法。

    addEventListener的参数一共有三个,语法为:

    element.addEventListener(type,listener,useCapture)

    下面是详解

    • 其中element是要绑定函数的对象。
    • type是事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on"。
    • listener当然就是绑定的函数了,记住不要跟括号
    • 最后一个参数是个布尔值,表示该事件的响应顺序,下面重点介绍一下addEventListener的第3个参数(useCapture)。

    userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式。建议用false,看个例子吧。

    html代码

    <div id="div_test"> <input type="button" id="btn_test" value="se4.cn技术基地" /> </div>

    js代码

    window.onload=function(){ document.getElementById("div_test").addEventListener("click",test1,false); document.getElementById("btn_test").addEventListener("click",test2,false); } function test1(){ alert("外层div触发") } function test2(){ alert("内层input触发") }

    自己体验一下,如果userCapture是true则test1先触发,如果userCapture是false则test2先触发。

    在近来的工作中,用到了attachEvent方法,该方法可以为某一事件附加其它的处理事件,有时候可能比较有用,这里将其基本用法总结一下。

    其语法可以查看《DHTML手册》,里面有详细的说明,这里贴一个例子,该例子来自互联网:

    document.getElementById("btn").onclick = method1;
    document.getElementById("btn").onclick = method2;
    document.getElementById("btn").onclick = method3;
    如果这样写,那么将会只有medhot3被执行

    写成这样:
    var btn1Obj = document.getElementById("btn1");
    //object.attachEvent(event,function);
    btn1Obj.attachEvent("onclick",method1);
    btn1Obj.attachEvent("onclick",method2);
    btn1Obj.attachEvent("onclick",method3);
    执行顺序为method3->method2->method1

    如果是Mozilla系列,并不支持该方法,需要用到addEventListener
    var btn1Obj = document.getElementById("btn1");
    //element.addEventListener(type,listener,useCapture);
    btn1Obj.addEventListener("click",method1,false);
    btn1Obj.addEventListener("click",method2,false);
    btn1Obj.addEventListener("click",method3,false);
    执行顺序为method1->method2->method3

  • 相关阅读:
    获得每天的日期流水 函数
    sql调用web服务
    Sql 查询当天、本周、本月记录
    从首页问答标题到问答详情页
    首页列表显示全部问答,完成问答详情页布局
    制作首页的显示列表。
    发布功能完成
    登录之后更新导航
    完成登录功能,用session记住用户名
    完成注册功能
  • 原文地址:https://www.cnblogs.com/jazzka702/p/1682636.html
Copyright © 2020-2023  润新知