javascript这个引用混乱

时间:2013-10-19 04:10:19

标签: javascript

我对这段代码感到有点困惑,并希望得到一些澄清。上下文只是一个简单的下拉菜单,我只是添加一个高亮类来链接鼠标悬停事件。 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)时,我实际上得到了鼠标坐标......很困惑。

1 个答案:

答案 0 :(得分:0)

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

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

我的猜测是在你的addEvent中,第一个参数是在调用事件时它的上下文应该是什么,所以这可行:

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