0

我对这段代码有点困惑,希望能得到一些澄清。上下文只是一个简单的下拉菜单,我只是添加一个突出显示类来链接鼠标悬停事件。util.addEvent 只是我用于跨浏览器合规性的一个简单实用程序。这行得通。

var highlight = function(link){
    return function(){
    link.className="highlight";
    }
}

这行不通。

util.addEvent(link, "mouseover", function(link){
link.className="highlight";
});

还:

util.addEvent(link,"mouseover",function(event){
    link=event.target;
    link.className = "highlight";
});

这也有效。当我在第二个不起作用的函数中执行 console.log(link) 时,我实际上得到了鼠标坐标......所以很困惑。

4

1 回答 1

0

这不起作用,因为链接是鼠标悬停时从浏览器调用发送的内容,这是事件

util.addEvent(link, "mouseover", function(link){
  link.className="highlight";
});

我的猜测是在您的 addEvent 中,第一个参数是调用事件时 this 的上下文应该是什么,所以这会起作用:

util.addEvent(link, "mouseover", function(event){
  this.className="highlight";
});
于 2013-10-19T04:21:44.320 回答