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)具体解释的更多相关文章
- Javascript中addEventListener和attachEvent的区别
在利用javascript为DOM Element添加事件处理程序时,如果要想下兼容IE6,7时,就不得不考虑addEventListener与attachEvent的异同. 1.首先说下addEve ...
- JavaScript中的attachEvent和addEventListener
attachEvent和addEventListener在前端开发过程中经常性的使用,他们都可以用来绑定脚本事件,取代在html中写obj.onclick=method. 相同点: 它们都是dom对象 ...
- javascript中标准事件流addEventListener介绍
addEventListener-开始 前面零散地写了些关于 addEventListener 的内容,觉得比较散,有些地方可能也说得不够清楚明白,所以决定以连载的形式从头到尾再写一篇. addEve ...
- JavaScript中的事件冒泡?事件传播的解释
注:本文来源 可译网 事件冒泡是你在学习javaScript旅途中遇到的一个术语,它涉及到当一个元素被另一个元素嵌套时调用事件处理的顺序,并且两个元素注册了同一个事件(例如,点击事件). 但是事件冒 ...
- Javascript 的addEventListener()及attachEvent()对比
Mozilla中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点.d ...
- Javascript 的addEventListener()及attachEvent()区别分析
大家都知道事件的用法就是当某个事件(状况)被触发了之后就会去执行某个Function, 尤其是Javascript, 在当红AJAX的催化下, 了解Javascript的Event用法更加重要, 在这 ...
- JavaScript中‘this’关键词的优雅解释
本文转载自:众成翻译 译者:MinweiShen 链接:http://www.zcfy.cc/article/901 原文:https://rainsoft.io/gentle-explanation ...
- JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念
JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html> <body> <script type="t ...
- javascript中window,document,body的解释
解释javascript中window,document,body的区别: window对象表示浏览器中打开的窗口,即是一个浏览器窗口只有一个window对象. document对象是载入浏览器的ht ...
随机推荐
- 设计模式之七:模板方法模式(Template Method)
模板方法模式: 定义了一个算法的基本操作骨架,并将算法的一些步骤延迟到子类中来实现. 模板方法模式让子类在不更改算法结构的前提下能够又一次定义算法的一些步骤. Define the skeleton ...
- 正余弦信号的DFT频谱分析
一般的,对正余弦信号进行採样并DFT运算,画出频谱图,会发现频谱并不干净.这样的现象称为频谱泄漏.由于DFT运算仅仅能是有限序列,突然的截断产生了泄漏. 会有这种特殊情况.当採样截取的刚好是整数个周期 ...
- Mustache.js语法
看了Mustache的github,学学此中的语法,做个笔记 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" ...
- AngularJS路由系列(6)-- UI-Router的嵌套State
本系列探寻AngularJS的路由机制,在WebStorm下开发.本篇主要涉及UI-Route的嵌套State. 假设一个主视图上有两个部分视图,部分视图1和部分视图2,主视图对应着一个state,两 ...
- ASP.NET Identity系列01,揭开神秘面纱
早在2005年的时候,微软随着ASP.NET 推出了membership机制,十年磨一剑,如今的ASP.NET Identity是否足够强大,一起来体会. 在VS2013下新建项目,选择"A ...
- delphi版本修改PE头源码
//VC++6外衣 1 OEPCODEFIVE: THEAD = ($55, $8B, $EC, $6A, $FF, $68, $00, $00, $00, $00, $68, $00, $00, $ ...
- Delphi的命令行编译命令
Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...
- Objective-C中的一些特殊的数据类及NSLog的输出格式
NSLog的格式如下所示: %@ 对象 %d, %i 整数 %u 无符整形 %f 浮点/双字 %x, %X 二进制整数 %o 八进制整数 %zu size_t % ...
- linux搭建C开发环境
目前决大多 数的Linux用户对Linux的了解还处于比较低级的层次,他们可能会几条命令.会配几种服务.会用rpm来安装软件.会操作KDE/Gnome界机等等,但是当他们遇到一些需要编译安装的软件时, ...
- Android 关于“NetworkOnMainThreadException”出错提示的原因及解决办法
几乎每天都在论坛里面看到有网友问这个问题,代码是无误的,在低版本的API上都可以运行的,但在3.0以上的版本就会出现NetworkOnMainThreadException 出现android.os. ...