JS页面延迟执行一些方法(整理)_javascript技巧
程序员文章站
2022-05-22 20:25:54
...
一般在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 = "";
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);
}
}
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 = "";
div += "
";
div += img;
div += "
"; div += img;
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);
}
}
上一篇: 如何查看是哪一行代码引起的http请求?
下一篇: Java 实现深度优先和广度优先遍历
推荐阅读
-
两种方法实现在HTML页面加载完毕后运行某个js_javascript技巧
-
网站繁简切换的JS遇到页面卡死的解决方法_javascript技巧
-
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法_javascript技巧
-
js与css实现弹出层覆盖整个页面的方法_javascript技巧
-
JS截取字符串常用方法整理及使用示例_javascript技巧
-
JS截取字符串常用方法详细整理_javascript技巧
-
js获得页面的高度和宽度的方法_javascript技巧
-
js获取html页面节点方法(递归方式)_javascript技巧
-
JS页面延迟执行一些方法(整理)_javascript技巧
-
JS实现在页面随时自定义背景颜色的方法_javascript技巧