2013-05-09 48 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/

好運。