2012-02-03 4 views
0

이미 열려 있으면 slideToggle을 닫으려고 시도했으나 이미 열려 있으면 다시 열 수 없습니다. 이 기능을 완전히 검색했지만 아무 소용이 없습니다. 어떤 도움을 많이 주시면 감사하겠습니다!slideToggle이 독립적으로 링크합니다.

jQuery를

<script> 
$(document).ready(function() { 
    $(".shareLink").click(function(){ 
$(".hideShare").hide(); 
    $("#"+$(this).attr('id')+'Box').slideToggle(); 
    return false; 
    }); 

}); 
</script> 

을 heres 당신은 하나 개의 요소를 아래로 슬라이딩 후 모든 것을 숨기고있어 http://digitalzu.net/jquery.html

+1

slideToggle은 현재의 상태에서 다른 상태로 전환, 그것이 말하는 것처럼 않습니다. 이미 열려 있으면 다시 열면 안됩니다. 링크를 따라 갔지만 작동하지 않는 것을 이해하지 못했습니다. 나를 위해 올바르게 작동하는 것 같습니다. – mrtsherman

답변

0

현재 상자를 포함하는 모든 hideShare 요소를 숨기고 있기 때문에 작동하지 않으므로 토글됩니다.

시도해보십시오.이 항목은 단지 siblings입니다.

$(".shareLink").unbind().click(function(){ 
     $("#"+$(this).attr('id')+'Box') 
     .siblings('.hideShare') 
     .slideUp() 
     .end() 
     .slideToggle(); 

     return false; 
    }); 

Demo

+0

빠른 응답을 보내 주셔서 감사합니다! 매력처럼 작동합니다. 다시 한번 감사드립니다. – jz416

0
var $el = $("#"+$(this).attr('id')+'Box'); 

if($el.is(":hidden")){ 
    $(".hideShare").hide(); 
    $el.slideDown(); 
} 

에 대한 링크. 문제는 요소가 이미 표시되어 있어도이 작업을 수행하고 있다는 것입니다. 대신, 아직 보이지 않는지 확인하십시오.

관련 문제