博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JS进阶2】attachEvent()/addEventListener() 对象添加触发事件
阅读量:6759 次
发布时间:2019-06-26

本文共 1417 字,大约阅读时间需要 4 分钟。

  hot3.png

js addEvent 绑定 分析:

function addEvent(elem, eventName, handler){

    if (elem.addEventListener) {
        elem.addEventListener(eventName, handler, userCapture);
    } else if (elem.attachEvent) {
        elem.attachEvent("on" + eventName, handler);
    }
};

FireFox -> addEventListener 第三个参数 userCapture

userCapture若为true,则浏览器采用Capture(捕获)方式,若为false则采用bubbing(冒泡)方式,建议用false。

有时候当某一对象的某一事件被触发时,它所要执行的程序可能是一大串,有可能是要呼叫某一函数,也有可能同时又要呼叫另一函数。

document.getElementById("btn").onclick = method1; 
document.getElementById("btn").onclick = method2; 
document.getElementById("btn").onclick = method3;
如果这样写,那么将会只有medhot3被执行
在(IE)中使用attachEvent,
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
看看gmail的代码
var Ka=navigator.userAgent.toLowerCase(); 
var rt=Ka.indexOf("opera")!=-1; 
var r=Ka.indexOf("msie")!=-1&&(document.all&&!rt); 
function Zl(a,b,c){if(r){a.attachEvent("on"+b,c)}else{a.addEventListener(b,c,false)}}

转载于:https://my.oschina.net/parker/blog/391666

你可能感兴趣的文章
转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架
查看>>
CodeCounter代码统计
查看>>
.Net垃圾收集机制—了解算法与代龄
查看>>
怎样实现Web控件文本框Reset的功能
查看>>
【SPOJ】8222. Substrings(后缀自动机)
查看>>
Linux下修改Mysql的用户(root)的密码
查看>>
安装 Nginx 并配置负载均衡
查看>>
Java 字符串包含
查看>>
Request 接收参数乱码原理解析一:服务器端解码原理
查看>>
java通过CLASSPATH读取包内文件
查看>>
开源 C# 代码开发平台 icsharpcode SharpDevelop
查看>>
使用 Java 程序写文件时,记得要 flush()
查看>>
OpenCV在矩阵上的卷积
查看>>
linux 编译java并打包
查看>>
What is Entity Framework?
查看>>
SQL Server 2008性能故障排查(一)——概论
查看>>
NGUI ScrollView动态加入和删除对象。
查看>>
****RESTful API 设计最佳实践(APP后端API设计参考典范)
查看>>
Linux内存管理-高端内存(二)
查看>>
[LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串
查看>>