2011-10-20 26 views
2

我使用下面的點擊功能來關閉一個接觸的形式和切換上我的導航欄上的鏈接的類:如何在div中顯示jQuery時只運行函數?

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#home").click(function(){ 
     $("#panel").slideUp("slow"); 
     $(this).toggleClass("current"); 
     $("#contact").toggleClass("current"); 
     return false; 
    }); 
}); 
</script> 

你可以看到this page在動作腳本。麻煩的是,如果聯繫表單處於打開狀態(即div顯示在頁面頂部),我只想切換聯繫人鏈接上的類。我將如何,如果增加一個條款,以沿線腳本「如果#panel是打開運行toggleClass上#contact

感謝,

尼克

回答

0

相反切換課程時,您可以設置和刪除課程,邏輯上,當您點擊a#home鏈接時,鏈接應該獲得current課程,並且#contact課程不應該有current課程回覆。

$(this).addClass("current"); 
$("#contact").removeClass("current"); 

如果您希望在形式是無形的,使用不執行功能:

$("#home").click(function(){ 
    if(!$('#panel').is(':visible')) return; 
    //Rest of code 
+0

感謝羅布。那就是訣竅。缺口 – Nick

1

嘗試 -

if ($("#panel").is(":visible")) { 
    //your code 
} 
1
if($('#panel').is(':visible')) 
    $(this).toggleClass("current"); 
0

有檢查與jQuery的一個元素的可見性的多種方式,但我m不確定每個機構依靠哪些機制,並考慮我知道您的面板指定display:none這應該有所幫助:

if ($("#panel").css("display") != "none") { 

} 
0

您可以做一個可見檢查例如if($("#contact:visible").length > -1),但是我看過例子,其中if($("#contact"))就足夠了。

0

從版本1.3開始,.toggleClass()接受switch參數來確定是否應添加或刪除類。

例如,使用以下代碼:

$("#contact").toggleClass("current", $('#panel').is(':visible')); 

的類添加到#contact如果#panel是可見的,和以其它方式移除。

相關問題