attachEvent中this指针问题

IE中使用attachEvent给一个元素绑定行为时,事件中的this指针会指向window对象,而不是元素本身,但使用addEventListener或者以elem.onclick = someFunc这种形式绑定的行为则不会出现这种问题。解决的问题也很简单,就是通过call或者applythis指针引向元素自己,jQuery中也是这样做的。


var _ele = document.getElementById('myElement');
try{
	_ele.addEventListener('click',clickFunc,false);
}catch(e){
	try{
		_ele.attachEvent('onclick',function(){clickFunc.call(_ele)});
	}catch(e){};
}

这样函数clickFunc中的this指针就会指向被绑定行为的元素了。

此条目发表在 前端 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>