2012-02-03 84 views
0

一直試圖讓slideToggle關閉,如果已經打開aka不重新打開,如果已經打開。搜索了這個功能,但無濟於事。任何幫助將非常感激!slideToggle鏈接獨立

jQuery的

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

}); 
</script> 

繼承人一個鏈接 http://digitalzu.net/jquery.html

+1

的slideToggle不只是因爲它說,它翻轉當前狀態。如果已經打開,它不應該重新打開。跟隨你的鏈接,但不明白什麼是行不通的。似乎爲我正確工作。 – mrtsherman 2012-02-03 22:21:07

回答

0

它不工作,因爲你隱藏所有hideShare元素,其中包括當前框也只是切換。

試試這個,它只會隱藏它的siblings

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

     return false; 
    }); 

Demo

+0

感謝您的快速響應!奇蹟般有效。再次感謝。 – jz416 2012-02-03 22:36:12

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

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

你躲在一切,然後將一個元素滑下。問題是即使元素已經可見,你也在做這件事。相反,確保它不是可見的,如果是的話,什麼也不做。