1. javascript怎麼讓函數執行完畢再執行
javascript提供了setTimeout() 方法用於在指定的毫秒數後調用函數或計算表達式,因此延遲1秒後執行一個函數可以如下代碼實現:
setTimeout("fun()",1000); // fun()是自定義函數
下面實例演示:打開頁面後倒計時3秒,然後彈出對話框
1、HTML結構
<div id="test">3</div>
2、javascript代碼
function fun(n){
if(n>0){
n--;
document.getElementById("test").innerHTML = n;
setTimeout("fun("+n+")",1000)
}
else
alert("時間到!!");
}
window.onload = function(){
setTimeout("fun(3)",1000)
}
2. 怎麼讓非同步先執行完了再執行js方法
方式一:用回調的方式,將要執行的方法放在非同步函數的回調方法裡面
方法二:promise了解下,結合async, awit,將非同步方法,寫成同步方法。
3. 怎麼讓js函數 一個執行完之後在執行另外一個
第一種情況:運動函數執行完之後再執行另外一個函數
注釋:按鈕點擊之後,div先顯示出來,然後寬度和高度再增加到300px
<button class="btn">點擊我</button><div id="div2">
<p>人的靈魂所必須的東西,是不需要用金錢來買的</p></div><style>
div{height: 200px;width: 200px;padding:15px;background: #ececec;display: none;}</style><script>$().ready(function(){
$('.btn').click(function(){
$('div').show();
$('div').animate({ 'width':'300px', 'height':'300px'
},1000)
})
})12345678910111213141516171819
或者這樣寫,如果div的高度寬度增加到300px,然後會執行另外一個函數,div的背景色會變成綠色
$().ready(function(){
$('.btn').click(function(){
$('div').show();
$('div').animate({ 'width':'300px', 'height':'300px'
},function(){
$(this).css('background','green')
})
})
})123456789101112
第二種情況:把函數a綁定到函數c 上,按鈕點擊的時候執行函數c,傳入的參數是a ,那麼函數就先執行函數a(),然後再執行函數b();就形成了先後執行函數
$().ready(function(){
$('.btn').click(function(){
c(a);
})
})function a() {
$('div').animate({'width':'300px'},1000)
}function b(){
$('div').animate({'height':'300px'},1000)
}function c(x){
x();
b();
}