javascript中addEventListener(attachEvent)详解

addEventListener 有三个参数:第一个参数表示事件名称(不含
on,如 “click”);第二个参数表示要接收事件处理的函数;第三个参数为 useCapture。例子如下:

 <button type="button">点击</button>
<img src="11 (6).jpg" alt="" style="display:block">
<script type="text/javascript">
var obj=document.getElementsByTagName("button")[0];
function fun(){
    alert(0);
    }
function fun2(){
    alert(1);
    }
function fun3(){
    alert(2);
    }
//如果这样写,那么将会只有fun3被执行,JS没有重载(JAVA中可以根据参数的不同来做到重载,即使函数的名字一样,但是JS不行,JS可以利用argument.length和if判断来模拟重载)
obj.onclick=fun;
obj.onclick=fun2;
obj.onclick=fun3;
//3个函数都会执行,执行顺序为method1->method2->method3,但是IE8及以下不支持(用attachEvent)
if(window.addEventListener){
    obj.addEventListener("click",fun,false);  
    //关于第三个参数的作用,请看:http://chinazblz.blog.163.com/blog/static/939391732010424325598/和addEventListener2.html
    obj.addEventListener("click",fun2,false);  //第三个参数默认值为false,所以如果不写其值默认为false
    obj.addEventListener("click",fun3,false);
}
else if(window.attachEvent){
    obj.attachEvent("onclick",fun); //注意attachEvent没有第3个参数
    obj.attachEvent("onclick",fun2);  //注意这个onclick,而不是click
    obj.attachEvent("onclick",fun3);
    //执行顺序刚好相反,为method3->method2->method1,要想和FF效果一样,可以把函数反过来写,即:
    //obj.attachEvent("onclick",fun3);
    //obj.attachEvent("onclick",fun2);
    //obj.attachEvent("onclick",fun);
}
</script>

关于第三个参数的应用区别如下:

 <div id="div_test"><input id="btn_test" type="button" value="web前端开发-css119" /></div>
<script type="text/javascript">// <![CDATA[
window.onload=function(){
    document.getElementById("div_test").addEventListener("click",test1,true); //把第3个参数改为false看看效果
    document.getElementById("btn_test").addEventListener("click",test2,true); //把第3个参数改为false看看效果
    }
function test1(){
    alert("外层div触发")
    }
function test2(){
    alert("内层input触发")
    }
// ]]></script>

javascript中addEventListener(attachEvent)详解

时间: 2024-11-13 00:07:36

javascript中addEventListener(attachEvent)详解的相关文章

【JavaScript中的this详解】

前言 this用法说难不难,有时候函数调用时,往往会搞不清楚this指向谁?那么,关于this的用法,你知道多少呢? 下面我来给大家整理一下关于this的详细分析,希望对大家有所帮助! this指向的规律 this指向的规律往往与函数调用的方式息息相关:this指向的情况,取决于函数调用的方法有哪些. 我们来看一下姜浩五大定律: 姜浩五大定律: ①通过函数名()直接调用:this指向window: ②通过对象.函数名()调用的:this指向这个对象: ③函数作为数组的一个元素,通过数组下标调用的

【好文收藏】javascript中event对象详解

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. <HTML> <HEAD><TITLE>Cancels Links</T

javascript中event对象详解

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. 前端UI资源I分享 <HTML> <HEAD><TITLE>Cancels L

JavaScript中的this详解

  前  言  this  JavaScript中的this详解 this详解 This的指向有几种情况?如何人为控制? [谁调用this,this指向谁!!] [this的指向,不关心this写在哪!!只关心包含this的函数,由谁调用!!] ①   通过()直接调用,this指向window  func(); ②   对象.函数调用,this指向当前对象. Obj.func()    div.onclick = function(){} ③   数组下标调用,this指向当前数组   [fu

JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 exec方法的返回值 exec方法返回的其实并不是匹配结果字符串,而是一个对象,简单地修改一下execReg函数,来做一个实验就可以印证这一点: function execReg(reg, str) { var result = reg.exec(str); alert(typeof result

Javascript中this关键字详解

原文出处:http://www.cnblogs.com/justany/archive/2012/11/01/the_keyword_this_in_javascript.html Quiz 请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 showName : function(){ 5 alert(this.name); 6 }, 7 waitShowNa

轻松学习JavaScript二十九:JavaScript中的this详解

这几天在看很多的JS的代码,多次出现this关键字,有时候表示不理解,就仔细看了这一方面的知识. 在JavaScript语言中,this的定义是:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬 嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它:1包含它的函数.2作为方法被调用时.3所 属的对象.随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那 个对象. this是Javascript语言的一个关键字,它代

javascript中的操作符详解1

好久没有写点什么了,根据博主的技术,仍然写一点javascript新手入门文章,接下来我们一起来探讨javascript的操作符. 一.前言 javascript中有许多操作符,但是许多初学者并不理解或曲解他们的用途,本章将会带领初学者们一起来学习一下javascript的几个常用操作符:typeof.in.delete.new. 二.学习目标 1. 深入了解javascript操作符:typeof.in.delete.new的功能及用法. 2. 剖析根本,掌握这些常用的操作符的运用场景,活学活

JavaScript中继承方式详解

继承一直是面向对象语言中的一个最为人津津乐道的概念,在JavaScript中,继承也是难点之一,下面我尽量用通俗的语言来介绍一下实现继承的几种方法. 原型链 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.这个基本思想说的一点也不基本,那么先说一个在之前博文中提到的概念,原型与实例的关系.我们知道:每一个实例里包含了原型对象中的方法和属性.这是因为任何一个对象都有一个内部属性[[prototype]]