可恶的ie浏览器,那么落后。。。attachEvent问题

狄默默斯基 2011-12-02 09:49:56
function clk(){
alert(this);
//接下去我要处理
this.style...... 谷歌没问题,,ie连连报错了
}

document.getElemnetById("aa").addEventListener("click",clk)

打印出来是 javascript:void(0), 我想应该是指自身对象aa

document.getElemnetById("aa").attachEvent("onclick",clk)
打印出来是 [Object Window]对象,,昏迷~~~

至此造成了传说中不兼容现象。。如何解决???
...全文
143 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fipl 2011-12-02
  • 打赏
  • 举报
回复

function clk(){
alert(this);
}

var ele = document.getElemnetById("aa");
ele.attachEvent("onclick",function() {
clk.call(ele);
});
ohmysee 2011-12-02
  • 打赏
  • 举报
回复
用闭包啊
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));
}
Legend1988 2011-12-02
  • 打赏
  • 举报
回复
attachEvent中是无法访问到this对象的,《ppk on javascript》中有谈到这一点。
MuBeiBei 2011-12-02
  • 打赏
  • 举报
回复
ie本来就是罪恶的~·唉 楼主慢慢习惯就好了~·
三石-gary 2011-12-02
  • 打赏
  • 举报
回复
2个不同的方法。。。。
狄默默斯基 2011-12-02
  • 打赏
  • 举报
回复
首先不要说直接onclick就行了之类的,,这只是一个小例子,

无法做到直接元素onclick,由程序结构决定的。。

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧