2010-08-17 34 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浏览器。这个数字太小,不值得考虑。