首页 > javascript > attachEvent 与 addEventListener 对同一物件事件多次绑定的触发顺序

attachEvent 与 addEventListener 对同一物件事件多次绑定的触发顺序

2009年9月20日 阅读(209 ) 发表评论 阅读评论

再来讲述JavaScript中的attachEvent 与 addEventListener使用方法,在有的时候,可以想像一下使用注册事件方法对同一物件事件进行多次绑定,那么这里就存在了一个触发顺序,看下面实例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=Content-Type content="text/html;charset=gb2312">
<script type="text/javascript">
window.onload=function(){
var testbut = document.getElementById("btn_test");
var info = document.getElementById("info")
 if (window.attachEvent)
{
    //IE
    testbut.attachEvent("onclick", function () { info.innerHTML += "1" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "2" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "3" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "4" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "5" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "6" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "7" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "8" + "
"; });
    testbut.attachEvent("onclick", function () { info.innerHTML += "9" + "
"; });
}
else
{
    //Firefox
    testbut.addEventListener("click", function () { info.innerHTML += "1" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "2" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "3" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "4" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "5" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "6" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "7" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "8" + "
"; }, false);
    testbut.addEventListener("click", function () { info.innerHTML += "9" + "
"; }, false);
}
}
</script>
</head>
<body>
<input id="btn_test" type="button" value="测试" />
<div id="info"></div>
</body>
</html>

IE下输出的结果为:
4  6  8  9  7  5   3  2  1
Firefox下输出的结果为:
1  2  3  4   5  6   7   8  9
从这可以看出在IE下它的触发顺序是乱七八糟的,而在火狐Firefox下,先绑定的先执行,以后得注意点了….

声明:转载原创文章时请注明:
    文章转载自:快乐心情, 原文地址:attachEvent 与 addEventListener 对同一物件事件多次绑定的触发顺序

Related Posts

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif