2011-04-13 68 views
2

我有這個簡單的代碼,當你按下一個鍵時,它會淡入div。當我按兩次時,它會淡化兩次。有可能你可以用一兩條簡單的線來防止這種情況發生?如果淡入淡出不再褪色或者是什麼?如何:如果fadeIn不會褪色(jQuery)

代碼如下:

jQuery(document).bind('keydown', 's',function (evt){ 
    $("#div1").fadeIn(); 
    return false; 
}); 

非常感謝。

回答

0

試試這個:

var isFading = false 
jQuery(document).bind('keydown', 's',function (evt){ 
    if(!isFading){ 
    isFading = true; 
    $("#div1").fadeIn(400,function(){ isFading = false; }); 
    return false; 
    } 
}); 
+0

它仍然刷新它 – jQuerybeast 2011-04-13 03:46:53

+0

你有代碼的某個地方,我可以看到?我的意思是HTML? – ysrb 2011-04-13 03:54:18

+0

非常感謝...發現問題歡呼 – jQuerybeast 2011-04-13 03:58:38

1

不明白你的意思。你的代碼有效。假設div默認是隱藏的,當按下鍵時,div淡入淡出。如果再次按下鍵,它不會再次淡入,因爲它已經顯示,除非你正在刷新頁面。

檢查http://jsfiddle.net/F8s8X/

+0

嗯...我的腳本有1429行代碼...可能是其他地方的問題 – jQuerybeast 2011-04-13 03:53:14

+0

是的,這絕對不是這個代碼導致的問題。 – Hussein 2011-04-13 03:54:43

+0

非常感謝 – jQuerybeast 2011-04-13 03:54:43

0

而不是使用$.bind()使用$.one()。這會將您的處理程序綁定到事件,並在第一次運行後自動解除綁定。
http://api.jquery.com/one/

jQuery(document).one('keydown', 's',function (evt){ 
    $("#div1").fadeIn(); 
    return false; 
});