2011-12-04 2 views
1

정말 당황 스러웠습니다. 난 그냥 공중 선회 목표 상에 addClass('test')을 할 노력하고있어 ... 내 jQuery를은 다음과 같습니다예기치 않은 결과를 반환하는 jQuery addClass()

<li id="menu-events">

에 :

//#nav-main dropdown effects     
$('#nav-main ul li').hover(function() { 
    $('#nav-main ul li').addClass('test'); 
    $(this).find('.dropdown').stop(true,true).slideToggle('slow'); 
    $('#nav-main ul li').removeClass("test"); 
}); 

반환은 그러나이에서가는 HTML입니다 이 :

<li id="menu-events" class="">

어떤 아이디어 왜?

답변

4

. jQuery는 비어있는 경우에도 클래스 속성을 제거하지 않습니다. 호버에 대한 다른 콜백 함수가 누락 된 것 같습니다. 롤아웃 할 때 클래스를 제거하겠습니까?

//#nav-main dropdown effects     
$('#nav-main ul li').hover(function() { // onRollOver 
    $('#nav-main ul li').addClass('test'); 
    $(this).find('.dropdown').stop(true,true).slideDown('slow'); 
}, function() { // onRollOut 
    $('#nav-main ul li').removeClass("test"); 
    $(this).find('.dropdown').stop(true,true).slideUp('slow'); 
}); 
+0

그게 다예요. 너무 바보 같고 분명합니다. – Brian

+0

자신을 때리지 마십시오. 나는 똑같은 실수를 한 적이 없다고 말할 수 있었으면 좋겠다.) – landons

0

잘 클래스를 추가하고 클래스를 제거하고 있습니다. 어떻게 될 것으로 예상합니까 ?? jquery 빈 클래스 특성을 제거하려면 기대하고 있습니까 ??

당신은 빈 클래스는 특성을 제거하려면 다음을 실행할 수 있습니다 : 당신은 추가하고 같은 함수에서 클래스를 제거하고

$('*[class=""]').removeAttr('class');

+0

을 아마 UR 땅볼 같은 잘못을 저 지르면 – Baz1nga

1

건물 landons의 코드에, 당신은 this를 사용하여 더를 단순화 할 수 있고 또 다시 같은 선택을 실행하지 않도록 : 당신이 더 이런 걸 원하는 것 같다

//#nav-main dropdown effects     
$('#nav-main ul li').hover(function() { // onRollOver 
    $(this).addClass('test').find('.dropdown').stop(true,true).slideDown('slow'); 
}, function() { // onRollOut 
    $(this).removeClass("test").find('.dropdown').stop(true,true).slideUp('slow'); 
}); 
+0

좋은 콜. 나는 그 수업이 단지 시험 일 뿐이라고 생각했지만 당신 말이 맞습니다. 그렇지 않으면 클래스를 ALL li에 추가합니다. 거의 필요하지 않습니다. – landons

관련 문제