如何:如果fadeIn不再褪色(jQuery)

How to: If fadeIn do not fade again (jQuery)

本文关键字:jQuery 褪色 不再 如果 fadeIn 如何      更新时间:2023-09-26

我有这个简单的代码,当你按下一个键,它淡入一个div。当我按它两次,它淡入它两次。有可能用一两行简单的字就能避免这种情况吗?如果褪色不会再次褪色之类的?

代码如下:

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

谢谢。

不知道你是什么意思。你的代码可以工作。假设div默认是隐藏的,当键被按下时,div淡出。如果再次按下键,它不会再次淡出,因为它已经显示,除非你刷新页面。

检查http://jsfiddle.net/F8s8X/。

试试这个:

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

$.one()代替$.bind()。这会将处理程序绑定到事件,并在第一次运行后自动解除绑定。
http://api.jquery.com/one/

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