2010-08-17 45 views
1

如何用jQuery覆蓋下面的CSS?在jQuery中重寫僞類型

(該動畫沒有運行,它只是一個瞬時開關)

menu span ul {display: none;} 
menu span:hover ul {display: block;} 

$('#menu span').mouseenter(function(){ 
    $('#menu span ul').slideDown('fast'); 
}).mouseleave(function(){ 
    $('#menu span ul').slideUp('fast'); 
}); 

回答

1

一個伎倆優美降解是沒有覆蓋的樣式,像這樣:

<noscript> 
    <style type="text/css">#menu span:hover ul {display: block;}</style> 
</noscript> 

與所有這些非JS用戶樣式一樣,鏈接的樣式表也具有相同的方式。

#menu span ul {display: none;} 
#menu.noJS span:hover ul {display: block;} 

而在你的腳本只是刪除類:


或者,通過你申請#menu您可以刪除這樣的規則不再匹配,像這樣一類做

$("#menu").removeClass("noJS"); 

作爲一個側面說明,你可以瘦下來代碼中使用.hover().slideToggle()是這樣的:

$('#menu span').hover(function(){ 
    $(this).find('ul').slideToggle('fast'); 
}); 
0

你沒有看到動畫,因爲你的CSS重寫它。

刪除

menu span:hover ul {display: block;} 

我不會刻意試圖重寫css來適應沒有啓用JS瀏覽器。這個數字太小,不值得考慮。