[英]delay() doesn't work second time jquery
我有一個jquery的delay()問題。 我正在使用帶有變量的if,else if條件:
var myvar = false;
function OpenAnimation(Clicked) {
if (myvar == true) {
$(Clicked).removeClass('open_peak');
myvar = false;
} else if (Clicked == 'an ID') {
$(Clicked).delay(500).queue(function () { $(this).addClass('open_peak') });
myvar = true;
}
該函數在其中傳遞的每個ID都正常工作。 但是第二次運行函數以獲取已經存在並且“丟失”.open_peak (順便說一下是OnClick)的ID時,類.open_peak不適用於該元素。
所以,當我打開一個窗口時,它會:
} else if (Clicked == 'an ID') {
$(Clicked).delay(500).queue(function () { $(this).addClass('open_peak') });
myvar = true; //which tells me that a window(element) is indeed open
}
當我關閉它時:
if (myvar == true) {
$(Clicked).removeClass('open_peak');
myvar = false;//No window is opened
}
我有更多的代碼,但是.open_peak沒有應用。
這是一個JSFiddle,你可以看到這個問題: http : //jsfiddle.net/at3eyLoL/
來自jQuery文檔:
注意,當使用.queue()添加函數時,我們應該確保最終調用.dequeue(),以便行中的下一個函數執行。
添加$(this).dequeue(); 在延遲后調用的函數中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.