function clk(){
 alert(this);
  //接下去我要处理
  this.style......   谷歌没问题,,ie连连报错了
}document.getElemnetById("aa").addEventListener("click",clk)打印出来是 javascript:void(0),  我想应该是指自身对象aadocument.getElemnetById("aa").attachEvent("onclick",clk)
打印出来是 [Object Window]对象,,昏迷~~~至此造成了传说中不兼容现象。。如何解决???

解决方案 »

  1.   

    首先不要说直接onclick就行了之类的,,这只是一个小例子,无法做到直接元素onclick,由程序结构决定的。。
      

  2.   

    attachEvent中是无法访问到this对象的,《ppk on javascript》中有谈到这一点。
      

  3.   

    用闭包啊
    function createDelegate(fun,thisObj){
        return fun.bind?fun.bind(thisObj):(function(){fun.apply(thisObj,arguments);});
    }
    function clk(){
        alert(this);
        /// ........
    }
    var element=document.getElementById("aa");
    if(element.addEventListener){
        element.addEventListener("click",createDelegate(clk,element));
    }else if(element.attachEvent){
        element.attachEvent("onclick",createDelegate(clk,element));
    }
      

  4.   


    function clk(){
     alert(this);
    }var ele = document.getElemnetById("aa");
    ele.attachEvent("onclick",function() {
                                 clk.call(ele);
                              });