2013-05-09 47 views
2

我正在尝试在系列中执行操作,但在此代码警报消息中打印出来的文件虽然我在某些操作后写入了该文件。在系列中执行操作

这是我试过的小提琴。 http://jsfiddle.net/wggua/635/

$(document).ready(function() { 
    var a=1; 
    setTimeout(function() { 
     $('#dvData').fadeOut(); 
}, 2000); 

    if(a==1) 
    { 
     alert("value i s 1"); 
    } 
    else 
    { 
     alert("value is 0"); 
    } 
}); 

请帮帮忙,

回答

1

您的代码表示:

“在两秒钟内运行这个淡出功能现在警报的东西。”

如果您希望在淡出函数运行后出现警报,那么您需要将该代码放入也在两秒钟内运行的函数中。

1

setTimeoutfadeOut调用都是asynchronous,因此您的提醒在其中任何一个都完成之前就会触发。您可以将回调函数传递给fadeOut方法,该方法将在动画完成时执行(请参阅docs)。类似这样的:

$(document).ready(function() { 
    var a=1; 
    setTimeout(function() { 
     $('#dvData').fadeOut('slow', function() { 
      // This function will execute when the fade out animation is complete 
      if(a==1) 
      { 
       alert("value i s 1"); 
      } 
      else 
      { 
       alert("value is 0"); 
      } 
     }); 
}, 2000); 
}); 
0

你的意思是你想让警报出现超时?如果是这样,你的代码需要看起来像这样: -

$(document).ready(function() { 
    var a=1; 
    setTimeout(function() { 
     $('#dvData').fadeOut(); 
    if(a==1) 
    { 
     alert("value i s 1"); 
    } 
    else 
    { 
     alert("value is 0"); 
    } 

    }, 2000); 


}); 

http://jsfiddle.net/wggua/637/

的,如果在你的例子说明会立即运行该文件已经准备好,因为其中没有阻止他们。程序执行顺序从顶部到底部运行。

或者,如果你希望警惕后显示的淡出已完成,你可以运行下面的代码: -

$(document).ready(function() { 
    var a=1; 
    setTimeout(function() { 
     $('#dvData').fadeOut(400,function() { 
      if(a==1) 
      { 
       alert("value i s 1"); 
      } 
      else 
      { 
       alert("value is 0"); 
      } 

     }); 

}, 2000); 

http://jsfiddle.net/wggua/638/

0

您使用setTimeout。在你设置它的时候,你在jQuery对元素应用效果之前调用了一段时间(2秒)。 setTimeout是一个功能异步的细节。并且因为这个警报在jQuery.fadeOut调用之前被调用。

如果你真的想要的时间间隔,只需设置一个回调函数在.fadeOut方法使用的参数complete的,如下所述:http://api.jquery.com/fadeOut/

这里是工作的代码的例子:

$(document).ready(function() { 
    var a=1; 
    function callback(){ 
     if(a==1) 
     { 
      alert("value i s 1"); 
     } 
     else 
     { 
      alert("value is 0"); 
     } 
    } 
    setTimeout(function() { 
     $('#dvData').fadeOut(400, callback); 
    }, 2000); 
}); 

PS:命名函数作为回调是你的朋友的可读性。 400相对于400毫秒,默认为jQuery.fadeOut方法。

这里是工作提琴:http://jsfiddle.net/fjorgemota/QMVG2/

好运。