一般在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); } 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 = "
";
div = "
"; div = img; div = "
";
var $body = $("body");
$body.prepend(div);
}
$layerMask.show();
//1分鐘後取消
hideTimeout = setTimeout(hideLayerMask,60000);
}
function hideLayerMask(){
if(hideTimeout != null){
} $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); } }