1

아래 CSS를 jQuery로 어떻게 덮어 쓸 수 있습니까? jQuery의 의사 스타일 덮어 쓰기

(. 애니메이션이 실행되는되지 않고 그냥 순간 스위치의) 우아한 degredation에 대한

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

한 트릭이 같은 스타일을 오버라이드 (override) 할 필요가 없습니다 것입니다 :

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

Of의 경우 JS 스타일이 아닌 사용자 스타일과 동일한 방법으로 링크 된 스타일 시트를 가져야합니다. 바로 제거 클래스를

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

을 그리고 당신의 스크립트 :


또는, 당신은 당신이 이렇게 일치하므로 규칙 더 이상 제거 할 수 있습니다 그 #menu에 적용되는 클래스를 통해 그것을 할

보조 노트로
$("#menu").removeClass("noJS"); 

, 당신은 .hover() 및를 코드 아래로 슬림 사용 할 수 있습니다은 다음과 같습니다 :

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

CSS가이를 무시하기 때문에 애니메이션이 표시되지 않습니다.

제거

menu span:hover ul {display: block;} 

내가 JS를 설정하지 않는 브라우저를 수용하기 위해 CSS를 무시하려고 귀찮게하지 않을 것입니다. 숫자는 너무 작아서 고려 가치가 없습니다.