JS頁面延遲執行一些方法(整理)


一般在JS頁面延遲執行一些方法。可以使用以下的方法 
jQuery.delay()方法簡介 
http://shawphy.com/2010/11/jquery-delay.html 
jQuery中queue和dequeue的用法 
http://www.jb51.net/article/25481.htm 
Window.setTimeout 
http://www.jb51.net/article/20741.htm
以下是我用到的一些例子。 

復制代碼代碼如下:

//延遲查詢,傳一個查詢btn的ID,然后根據它附近的FORM綁定,當FORM里面的控件被觸發或被輸入了就會500毫秒后模擬點擊查詢按鈕 
var timeout; 
function searchTrigerInit(btnId){ 
var $form = $("#"+btnId).closest("form"); 
$form.find("input").not(".search_onblur").keyup(function(){ 
searchTriger(btnId); 
}); 
$form.find("input.search_onblur").blur(function(){ 
searchTriger(btnId); 
}); 
$form.find("input[type=checkbox]").change(function(){ 
searchTriger(btnId); 
}); 
$form.find("select").change(function(){ 
searchTriger(btnId); 
}); 

function searchTriger(btnId){ 
if(timeout != null){ 
clearTimeout(timeout); 

timeout = setTimeout("searchBtnClick('"+btnId+"')",500); 

function searchBtnClick(btnId){ 
$("#"+btnId).click(); 


定義遮罩層,相隔一分鍾后關閉 

復制代碼代碼如下:

var hideTimeout; 
function showLayerMask(){ 
$layerMask = $(".layerMask"); 
if($layerMask.length == 0){ 
var div = ""; 
var width = document.body.clientWidth; 
var Height = document.body.scrollHeight; 
var img = "<img src='"+resourcePath+"/src/images/loading2.gif' />"; 
div += "<div class='layerMask' style='width:100%;height:" + Height + "px;'>"; 
div += img; 
div += "</div>"; 
var $body = $("body"); 
$body.prepend(div); 

$layerMask.show(); 
//1分鍾后取消 
hideTimeout = setTimeout(hideLayerMask,60000); 

function hideLayerMask(){ 
if(hideTimeout != null){ 
clearTimeout(hideTimeout); 

$layerMask = $(".layerMask"); 
$layerMask.hide(); 


倒計時 

復制代碼代碼如下:

var emailTime = 30; 
function nextCanDo(){ 
$("#mailValidateCodeBtn").val(emailTime+"秒"); 
emailTime -= 1; 
if(emailTime ==0 ){ 
$("#mailValidateCodeBtn").val("重新獲取驗證碼"); 
$("#mailValidateCodeBtn").attr("disabled",false); 
emailTime = 30; 
}else{ 
setTimeout("nextCanDo()",1000); 

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM