簡體   English   中英

delay()第二次jquery不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM