• [转]javascript指定事件处理程序包括三种方式:


    javascript指定事件处理程序包括三种方式:
    (1):DOM0级事件处理程序
    如:

    代码如下:

    var btn=document.getElementById("mybtn"); //取得该按钮的引用
    btn.onclick=function(){
    alert('clicked');
    alert(this.id); // mybtn


    以这种方式添加的事件处理程序会在事件流的冒泡阶段被处理。
    删除DOM0级方法指定的事件处理程序:
    btn.onclick=null; // 删除事件处理程序
    }
    (2):DOM2级事件处理程序
    DOM2 级事件定义了两个方法,用于处理指定和删除事件处理程序的操作:addEventListener()和removeEventListener()。所 有DOM节点中都包含这两个方法,并且它们都接受3个参数:要处理的事件名,做为事件处理程序的函数和一个布尔值。最后这个参数如果是true,表示在捕 获阶段调用事件处理程序;如果是fasle,表示在冒泡阶段调用事件处理程序。
    如:

    代码如下:

    var btn=document.getElementById("mybtn");
    btn.addEventListener("click",function(){
    alert(this.id);
    },false);


    使用DOM2级事件处理程序的主要好处是可以添加多个事件处理程序。
    如:

    代码如下:

    var btn=document.getElementById("mybtn");
    btn.addEventListener("click",function(){
    alert(this.id);
    },false);
    btn.addEventListener("click",function(){
    alert("hello world!");
    },false);


    这里为按钮添加了两个事件处理程序。这两个事件处理程序会按照它们的顺序触发。
    通过addEventListener()添加的时间处理程序只能使用removeEventListener()来移除,移除时传入的参数与添加时使用的参数相同。这也意味着通过addEventListener()添加的匿名函数将无法移除。
    如:

    代码如下:

    var btn=document.getElementById("mybtn");
    btn.addEventListener("click",function(){
    alert(this.id);
    },false);
    //移除
    btn.removeEventListener("click",function(){ //这样写没有用 (因为胃第二次与第一次相比是一个完全不同的函数)
    alert(this.id);
    },false);


    解决办法:

    代码如下:

    var btn=document.getElementById("mybtn");
    var hander=function(){
    alert(this.id);
    };
    btn.addEventListener("click",hander,false);

    btn.removeEventListener("click",hander,false); // 有效


    注意:这里我们的第三个参数都是false,是在冒泡阶段添加的。大多数情况下,都是就事件处理程序添加到事件流的冒泡阶段,这样可以最大限度的兼容各种浏览器。

  • 相关阅读:
    sql sever外网映射后链接,端口号用,号区分
    zentao事故,慢sql查询
    阿里云镜像加速器配置
    对产品不同指标维度分组求和
    burp抓包https请求
    mysql获取当天,昨天,本周,本月,上周,上月的起始时间
    查询不同sql,插入同一个sheet
    按分类查找缺陷并输出到EXCEL
    循环导出所有行和列
    查询某字段等于当天的日期sql:select count(*) from zt_bug WHERE date_format(openedDate,'%Y-%m-%d')=date_format(NOW(),'%Y-%m-%d')
  • 原文地址:https://www.cnblogs.com/n2meetu/p/5913952.html
Copyright © 2020-2023  润新知