使用$.when(延遲對象1,?延遲對象2).done(?function(對象1返回值,?對象2返回值){ ... });
為無為等地區(qū)用戶提供了全套網頁設計制作服務,及無為網站建設行業(yè)解決方案。主營業(yè)務為成都做網站、成都網站建設、無為網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
var?d1?=?$.Deferred();
var?d2?=?$.Deferred();
$.when(?d1,?d2?).done(function?(?v1,?v2?)?{
console.log(?v1?);?//?"Fish"???
console.log(?v2?);?//?"Pizza"
});?
d1.resolve(?"Fish"?);
d2.resolve(?"Pizza"?);
$.when()方法可以接受0個或多個參數(shù),?多個參數(shù)用逗號分隔,?這些參數(shù)可以是普通對象也可以是延遲對象(包括常用的異步請求),? 然后返回一個jquery延遲對象,?可以對其使用then,?done,?always等方法.?
你上面那樣寫只會造成死循環(huán)。
//?手打,可能存在一些代碼寫錯。
//?最簡單的
setTimeout(function(){
document.getElementById("buyNowAddCart").click()
setTimeout(function(){
document.getElementById("proPopSubmit").click();
setTimeout(function(){
document.getElementById("submit-btn").click();
},1*1000)?
},1*1000)?
},1*1000)?//?1秒
//?進階一點,把setTimeout拆分出來,方便控制,和代碼閱讀。
function?openTimeout(callback,second){
//?判斷cb有沒有,實際上完整的代碼是判斷是否是一個function,這里簡單就判斷是否為空。
callback??setTimeout(callback,second*1000);
}?
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){document.getElementById("submit-btn").click();},1);
}),1;
},1)
//?如果一直要循環(huán),那么可以把這些代碼放在一個方法里
function?fn(){
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){
document.getElementById("submit-btn").click();
openTimeout(fn,1);?//?當最后一個click完成,又開始加個定時器調用fn方法從而循環(huán)執(zhí)行三個click
},1);
},1);
},1)
}
fn();?//?開始執(zhí)行三個click,每過一秒
頁面加載等待特效,當數(shù)據加載完成效果消失的代碼如下:
$.ajax({
url:"",
type:"post",
data:{"xx":"xx"},
beforeSend:function(){
//這里是開始執(zhí)行方法,顯示效果,效果自己寫
},
complete:function(){
//方法執(zhí)行完畢,效果自己可以關閉,或者隱藏效果
},
success:function(){
//數(shù)據加載成功
},
error:function(){
//數(shù)據加載失敗
}
});
html
head
script type="text/javascript" src="jq/jquery.js"/script
/head
script type="text/javascript"
$(function() {
$("#div").mouseout(function(){
setTimeout(function(){$("#div2").hide()}, 3000);
});
});
/script
body
input type="text" value="div" id="div"
div id="div2"
鼠標離開div,等待3秒鐘后此段隱藏
/div
/body
/html
JS:
setTimeout("這里寫你等待1秒后執(zhí)行的函數(shù)名",1000);
例:
function showHello()
{
document.write("你好!");
}
setTimeout("showHello()",1000);
可以這樣:
var menu=getid("menu");
var li=gettag("li",menu);
for(var i=0;ili.length;i++){
li[i].onmouseover=function(){
if(this.className.indexOf("show")0)
{
setTimeout("showHello(this)",1000);
}
}
li[i].onmouseout=function(){
$(this).removeClass("show");
}
}
function showHello(obj)
{
$(obj).addClass("show");
}