attachEvent和addEventListener都是追加事件
attachEvent是ie的方法  
addEventListener是火狐的方法一般事件兼容都是这么写:
function addEventHandler(oTarget, sEventType, fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType, fnHandler, false);
}else if(oTarget.attachEvent){
oTarget.attachEvent("on" + sEventType, fnHandler);
}else{
oTarget["on" + sEventType] = fnHandler;
}
}

解决方案 »

  1.   

    系统支持'addEventListener' 就用addEventListener绑定事件
    系统支持'attachEvent' 就用attachEvent绑定事件
    否则用 on+事件=function(){}形式添加事件, 比如 button.onclick=function(){}attachEvent绑定的事件对像里的this指windowaddEventListener 绑定的事件里的 this 指 绑定事件的元素本身
      

  2.   

    http://www.scriptlover.com/pages/article.asp?ArticleID=170
      

  3.   


    <SCRIPT LANGUAGE="JavaScript">
    function fnHandler()
    {
    alert("加入了onclick事件")
    }
    function addEventHandler(){
    var oTarget = document.getElementById("target")
    if(oTarget.addEventListener)
    {
    alert("ff下添加事件")
    oTarget.addEventListener("click",fnHandler,false);
    }
    else
    {
    alert("ie下添加事件")
    oTarget.attachEvent("onclick",fnHandler);
    }
    }</SCRIPT>
    <INPUT TYPE="button" value="目标button" id="target">
    <INPUT TYPE="button" VALUE="为目标button加入onclick事件" ONCLICK="addEventHandler()">5楼已经解释的很清楚了啊 简化版的 自己分别在ie和ff下运行看吧
      

  4.   

    通俗的解释是:它们是实现相同功能的在不同浏览器中的方法。你就记住当是一个函数,两个名字,有点像Java中的函数重载。
      

  5.   

     oTarget.addEventListener("click",fnHandler,false);
    这句的最后一个参数,false,这两个起什么作用提,如果改成true会有什么不同?
      

  6.   

    怎么说哪,就是如果你设的这个元素有父元素,并且父元素跟你这个元素有相同的响应事件比如都是onclick
    ,那么如果你设置为false,其单击事件的响应顺序就是有内之外,如果为true则有外之内。一般情况下设置为false.