我有以下一段代碼,我需要顯示或隱藏面板。我的問題是,show()僅適用於其他點擊。jQuery show()和hide()在同一個循環內
var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.show();
我想知道show()不一致的原因。
我有以下一段代碼,我需要顯示或隱藏面板。我的問題是,show()僅適用於其他點擊。jQuery show()和hide()在同一個循環內
var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.show();
我想知道show()不一致的原因。
這不起作用,因爲您在.hide(2000)
中設置時間。您有以下方式::
HTML寫
<div class="panel" >This is a DIV</div>
<button type="button" class="buttonClick" >Click me</button>
JQUERY
$(document).ready(function (e) {
$(document).on('click', '.buttonClick', function() {
var allPanels = $(".panel");
allPanels.hide(2000, function(){
allPanels.show();
});
});
});
@Sujit如果幫助他人是正確的,請接受答案。 –
一個更簡單的方法是.stop()當前的動畫之前你開始另一個。
var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.stop().show();
這樣你就不必把代碼放在回調中。 雖然會注意到,但這樣做會明確地暫停動畫,忽略其當前狀態。
allPanels.stop()。show();沒有工作,拋出一個例外。 –
@sujitkumar http://www.bootply.com/eXJ5V94FqH – Stavm
當我刪除了動畫計時從
var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.stop().show();
改爲
var allPanels = $(".panel");
allPanels.hide();
allPanels.stop().show();`enter code here`
它開始工作。隱藏和顯示無縫工作。謝謝。但任何人都可以說爲什麼隱藏和顯示時間不起作用。
我想如果我使用allPanels.hide(2000);和allPanels.show(1000);或allPanels.show(2000);它的工作原理,但不是如果allPanels.show(); –
你正在使用動畫,所以你可以在他們被隱藏後拍攝'allPanels.hide(2000,function(){$(this).show()});' –
謝謝Alon和@Rana - 我想我不清楚足夠。我想知道爲什麼show()不能顯示元素,除非show(1000)被調用。儘管如此,謝謝你的回覆。 –