Javascript IE 事件,这个

标签 javascript events this compatibility explorer

好吧,我有链接列表,我正在使用 for 循环处理它们,附加事件。 这些链接获取调用函数的单击事件。该函数需要对调用它的对象进行操作。就像这样:

  <ul><li id = 'myId'>Text</li>
    <li id = 'myId'>Text</li>
    <li id = 'myId'>Text</li>
    <li id = 'myId'>Text</li>
    </ul>


   var grab = document.getElementsByTagName('li');
   for (var x =0;x<grab.length;x++){
       grab[x].attachEvent('onmouseover',doSomething);
       }

    function doSomething(){
        this.setAttribute('color','yellow');
    }

除了 IE 之外,这在所有浏览器中都工作得很好,我遇到的问题似乎是 IE 希望“this”成为窗口,而不是调用事件的对象。

我知道 JQuery 很容易解决这个问题,只是我无法在这种情况下访问 JQuery。有没有一种方法,就在常规 JavaScript 中,让 IE 正确使用“this”,或者一种方法来近似其他人的行为?

谢谢

最佳答案

只需使用旧标准可靠的on[event] 处理程序即可。

for (var x = 0, len = grab.length; x < len; x++) { 
   grab[x].onmouseover = doSomething;
}

并确保您实际上没有重复问题中所示的 ID。

关于Javascript IE 事件,这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507699/

相关文章:

javascript - 在 Javascript 中使用 Web 服务

javascript - 基于嵌套属性过滤数组

python - 在 Python 中使用事件监控系统

javascript - 如何在谷歌云功能中使用谷歌表格 API

JavaScript : NameSpace of a specific attribute?

javascript - 如何禁用 dijit.form.NumberSpinner 小部件上的鼠标滚轮事件?

c++ - 具有非类型模板参数的多态性

javascript - 如何获取每个函数中正在迭代的当前项?

javascript - 以下 Javascript 函数如何影响 'this' 的值?

c# - 在参数 c# 中使用 this 关键字