2013-10-19 88 views
0

我對這段代碼有點困惑,並希望得到一些澄清。上下文只是一個簡單的下拉菜單,我只是添加一個高亮類來鏈接mouseover事件。 util.addEvent只是我用於跨瀏覽器合規性的一個簡單實用程序。 這有效。javascript這個參考混淆

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(鏈接)時,我實際上得到了鼠標座標......所以很困惑。

+0

addEvent是什麼樣子?順便說一句,我推薦JQuery,他們已經爲跨瀏覽器構建了輪子,但是他們都是自己的。 – Kingpin2k

回答

0

這是不行的,因爲鏈接是什麼將被從呼叫從鼠標懸停瀏覽器,這是事件

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

我的猜測是在你的addEvent發送,第一個參數是什麼這種情況應該是事件被調用時,所以這將工作:

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