2013-03-11 76 views
1

我的js代碼存在一些問題。我想動畫一個簡單的點擊功能,以便一個div,顯示下面的div,但在5秒後回放動畫。我認爲我通過fadeToggle和延遲獲得了正確的設置,但我不知道如何設置「過度點擊」預​​防。我的意思是當人們搗亂點擊對象。正確使用stop和delay

我的第一次嘗試是stop(true,true)。雖然它看起來像預期的那樣工作(中止進一步的函數執行),但不幸的是它顯示了5秒後的底層div,儘管它應該顯示上面的一個(圖片)。

這裏是JS和小提琴:

$(function() { 
    $("#boxes li").on("click", function(){  
    $(this).find(".front,.back").stop(true, true).fadeToggle(800).delay(5000).fadeToggle(800); 
    }); 
}); 

也是一個js撥弄鏈接,明白我的意思:

http://jsfiddle.net/sfiddle/bqbPL/

問候,

PS:先試點擊一次,看看我想完成什麼效果,然後點擊2次,看看5秒後它將如何顯示文本div。

回答

0

我已經修改了一點,

但仍需要進行了一些工作,你可以使用一些標誌變量與點擊,

請參閱更新'fiddle`,它處理的過程,但存儲未來單擊它在淡出之後發生。

更新:避免雙擊

創建一個標誌是,你將創建一個布爾變量,這將是真/假。 (或int變量爲0或1),

像:

var flg=true;

現在,這個變量稱爲標誌,標誌與假/真值開始(按規定),那麼我們將修改標誌事件發生後(我們要注意的事件,這裏點擊按鈕)一旦發生事件,我們將更改標誌。

在第二個你會添加標誌的條件。 if(condition == true && flag == true) {....}所以,如果標誌在事件發生後改變爲假/點擊事件,如果不再發生。

我希望這會有所幫助..

+0

謝謝@MarmiK,但這不起作用,因爲我打算。你可以通過點擊兩次又一次來很容易地搞砸了。其他建議? – user2132380 2013-03-11 10:40:13

+0

您需要創建標誌,每次點擊後標誌將會改變,並在正常後再次更改標誌。 – MarmiK 2013-03-11 10:58:58

+0

好的,謝謝你。我會在稍後檢查。也許我應該提到我是js的初學者,國旗現在還沒有告訴我任何事情。 – user2132380 2013-03-11 11:37:44