2009-10-05 111 views
0

我喜歡我的菜單在:hover上進行互動。菜單懸停狀態丟失!

所以這裏是代碼:

$('#menu img').hover(function(){ 
    $(this).removeClass(); 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass(); 
    $(this).addClass('menuoff'); 
    return false; 
}); 

此代碼工作正常,但副作用是當menuon狀態已經結束,它失去它課堂,成爲關。

關於你處理那個....我喜歡待在狀態!

這裏是the working page

回答

2

你可以做你想做的從懸停事件刪除當前的菜單項:

$('#menu img:not(.menuon)').hover(
... 

但你和懸停風格混合當前菜單項的風格,我認爲這對用戶來說很混亂。

如果您僅將JavaScript懸停樣式應用於JavaScript並添加currentMenu類來設置與menuon樣式略有不同的當前菜單項,則可能會更好。

<img src="layout/menu_acceuil.jpg" class="currentMenu" /> 
<img src="layout/menu_pourquoi.jpg" /> 
... 
+0

我會想到的很好的解決方案! :-) – menardmam 2009-10-05 17:58:53

+0

很好的幫助,工作很好,謝謝!我今天學到了一些東西! – menardmam 2009-10-05 18:06:45

-1

像MEDER說,你需要指定類刪除。我不會有一個關閉狀態的替代課程。所有你需要的是:

$('#menu img').hover(function(){ 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass('menuon'); 
    return false; 
}); 
+1

不應該它沒有指定類名稱的工作? jQuery文檔有一個例子:$(「p:eq(1)」)。removeClass(); http://docs.jquery.com/Attributes/removeClass – 2009-10-05 16:18:46

+0

顯然這是正確的。 – 2009-10-05 16:26:23

+0

doest不行! – menardmam 2009-10-05 16:50:50

0

如果你檢查dom,你會看到menuoff和menuon都被添加了。相反,你應該明確地刪除類:

$('#menu img').hover(function(){ 
    $(this).removeClass('menuoff'); 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass('menuon'); 
    $(this).addClass('menuoff'); 
    return false; 
}); 
相關問題