关于IE上this关键字在监听事件下的有关问题
关于IE下this关键字在监听事件上的问题!
Xhtml Code:
<input name="" type="button" id="aa" value="aaa" />
Javascript Code:
var btn=document.getElementById("aa");
if(document.all){
btn.attachEvent("onclick",function(e){
alert(e.srcElement.value); //*****
});
}
else{
btn.addEventListener("click",function(){alert(this.value)},false);
}
注:标星号的地方我有以下疑问:为什么用this表示当前对象的时候,返回的值是undefind呢?
当然,e.srcElement.value是正常的。
1 楼
clue
2010-07-20
事件响应时,调用监听函数的作用域是全局
即scope为window
你可以试试alert(this===window)
大部分JS框架封装的事件接口都实现了指定作用域的功能,实际上绑定的函数是另外生成的,在它内部会使用call或apply以传入的作用域调用函数。
即scope为window
你可以试试alert(this===window)
大部分JS框架封装的事件接口都实现了指定作用域的功能,实际上绑定的函数是另外生成的,在它内部会使用call或apply以传入的作用域调用函数。
2 楼
hao3721
2010-07-20
好的!谢谢你!