2011-03-07 39 views
0

我有這個切換功能jQuery的 - 撥動問題

$('#togglebtn').toggle(function() { 
$('#panel').show(); 
}, function() { 
$('#panel').hide(); 
}); 

我也有另外一個按鈕來關閉/隱藏面板

$('#otherbtn').click(function() { 
$('#panel').hide(); 
}); 

所有我想說的是,當我隱藏面板與#otherbtn該事件仍然在#togglebtn上活動,並給我一個額外的點擊開始再次切換面板。我該如何解決這個問題?

回答

0

切換按鈕上的觸發點擊事件。

$('#otherbtn').click(function() { 
$('#panel').hide(); 
$('#togglebtn').click(); //resets tooglebtn state 
}); 
+0

#otherbtn在#panel裏面 – user558134 2011-03-07 09:20:35

+0

那麼?你有沒有嘗試過的代碼?當你點擊#otherbtn函數將被執行。 – 2011-03-07 09:35:29

+0

是的,非常感謝 – user558134 2011-03-07 09:45:21

0
$('#otherbtn').click(function() { 
$('#panel').hide(); 
$('#togglebtn').toggle(function() { 
$('#panel').hide(); 
}, function() { 
$('#panel').show(); 
}); 

}); 

應該工作。顛倒'otherbtn'的切換行爲

+1

這將用作點擊事件處理程序綁定到'#togglebtn'每次點擊'#otherbtn'。當然,它會產生預期的效果,但最終會產生大量不必要的點擊事件處理程序。這絕對是**不是正確的方式。 – 2011-03-07 09:16:23

+0

@felix感謝您的糾正。 – DhruvPathak 2011-03-07 09:17:46

+0

#otherbtn在#panel裏面 – user558134 2011-03-07 09:19:51

5

你想要做的是通過其他.toggle()函數已經可用。只要將其綁定到click事件:

$('#togglebtn').click(function() { 
    $('#panel').toggle() 
}); 

(的$('#togglebtn').toggle(...)代替)