老师你好,询问以下关于 this 指向问题
这个作业我写完之后,在 IE8 或者 IE7 下测试,发现点击导航条变换激活状态的时候,this 在 IE8、7 下是无法正确指向的,输出控制台发现其似乎指向到了 window 上,然后我尝试使用如下方法,去完成了兼容,但是怎么看都觉得并不是很好的写法,请问如何能让 IE8、7 的 this 属性正确指向当前元素?
且还想问下,目前已经 2019 年,是否还有必要兼容 IE9 以下浏览器,毕竟微软自己都已经放弃了。
for (var i = 0; i < navsLength; i++) { navs[i].setAttribute("data-id", String(i)); EventsHandler.addHandler(navs[i], "click", function (e) { if (this.getAttribute) { // IE8 以上,this 能正确指向 index = this.getAttribute("data-id") } else { // IE8 IE7 this 无法正确指向,且无法正确识别自定义属性 `data-id` var ieElm = e.srcElement; for (var b = 0; b < navsLength; b++) { if (ieElm.innerText === navs[b].innerText) { index = b; } } } changeNavImage(index); }) }
2
收起
正在回答 回答被采纳积分+1
2回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星