2011-09-28 4 views
0

다른 요소가 클릭 될 때 요소를 아래로 밀어 내려고하고 해당 링크를 다시 클릭하면 요소를 위로 슬라이드하면보다 더 깔끔한 방법이 있습니까? 사용자의 특정 요구에 따라jquery 슬라이드를 위아래로 클릭 할 때

$("#dropdown, #dropdown span, #dropdown dt a").click(function(event) { 
      $("#dropdown dd").slideDown(defaults.speed); 
      $("#dropdown").addClass('drop_down_open'); 
      event.preventDefault(); 
     }); 

     $(".drop_down_open, .drop_down_open span, .drop_down_open dt a").click(function(event) { 
      console.log("hello"); 
      $("#dropdown dd").slideUp(defaults.speed); 
      event.preventDefault(); 
     }); 

답변

0
$("#anElement").click(function(e) { 
    var theItem = $("#dropdown dd"); 
    if (theItem.css("display") == none) { 
     theItem.slideDown(defaults.speed); 
    } 
    else { 
     theItem.slideUp(defaults.speed); 
    } 
    e.preventDefault(); 
}); 

수정.

+0

그러나이 코드는 클릭 할 때 요소를 열어 주지만, 디스플레이가 더 이상 = 없음이 아니므로 즉시 다시 닫습니다. – Udders

+0

그런 일은 일어나지 않아야합니다. if-else 문입니다. 따라서 클릭당 한 번만 실행하면 올바르게 작동합니다. 클릭당 몇 번 실행되는 셀렉터가 너무 많습니까? 거기에 경고 ("안녕하세요")를 넣고 확인하십시오. –

관련 문제