2010-09-19 82 views
2

我想強調顏色添加到類像這樣切換一個CSS顏色上懸停

$(".common_box").hover(function(){ 
     $(".common_box").addClass("hover_me"); 
    }); 

這個工作,但爲什麼犯規此

$(".common_box").hover(function(){ 
     $(".common_box").toggleClass("hover_me"); 
    }); 

當我將鼠標懸停在這個什麼都不會發生

是否有沒有unshover刪除類hover_me當他們離開懸停

+3

雖然下面的作品答案,也可以考慮使用純CSS和':hover',如果IE6是不是一個考慮因素。 – 2010-09-20 00:09:07

回答

3

在某些情況下,當鼠標進入/離開事件觸發兩次時,目前有一個錯誤,所以它工作,但它是雙重切換每個輸入/輸出,所以沒有淨效果...現在,爲了安全起見:

$(".common_box").hover(function(){ 
    $(this).addClass("hover_me"); 
}, function(){ 
    $(this).removeClass("hover_me"); 
}); 

這是一個錯誤(我相信)因爲.live()更改,以支持.hover(),這是造成一些不必要的副作用,你可以明確的像上面是100%安全的,所以如果每個處理器運行多次,至少爲了你的目的,這是沒問題的。

1

試試這個

$(".common_box").mouseover(function() { 
    $(this).addClass("hover_me"); 
    }).mouseout(function(){ 
    $(this).removeClass("hover_me"); 
    }); 
+1

你想堅持'mouseenter'和'mouseleave'(這裏有兩個函數參數映射到的),因爲在.common_box中進入/離開子元素時,它們不會被觸發。 – 2010-09-20 00:23:45