我正在尝试按顺序执行操作但是在我的代码警报消息中打印了firat,虽然我已经在一些操作后写了它。
这是我试过的小提琴。 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");
}
});
请帮忙,
答案 0 :(得分:1)
您的代码说:
“在两秒内运行此淡出功能。现在提醒一些事情。”
如果您希望在淡出功能运行后显示警报,则需要将该代码放在两秒钟内运行的函数中。
答案 1 :(得分:1)
setTimeout
和fadeOut
来电都是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);
});
答案 2 :(得分: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/
示例中的if语句将在文档准备就绪后立即运行,因为没有任何内容可以阻止它们。程序执行按顺序从上到下运行。
或者,如果希望在 fadeOut完成后显示警告,则可以运行以下代码: -
$(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);
答案 3 :(得分:0)
您正在使用setTimeout
。在你设置它的时候,你在jQuery对元素应用效果之前调用了一点间隔(2秒)。 setTimeout
是函数异步的详细信息。因为这是在jQuery.fadeOut
电话之前调用警报。
如果您真的想要间隔,只需使用complete
方法中的参数.fadeOut
设置回调,如下所述: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/
祝你好运。