使用闭包对setTimeout进行简单封装避免出错


Posted in Javascript onJuly 10, 2013

在写js脚本时,经常会用到一些拼写函数的情况,例如调用setTimeout

var msgalert="test"; 
function TestAlert(msg) 
{ 
alert(msg) 
} $(document).ready(function () { 
$("#btnCancel").click(function (e) { 
setTimeout("TestAlert("+msgalert+")",1000); 
}); 
})

查了很长时间,为什么就是弹不出对话框呢。检查了很长时间才发现,原来是少了一对单引号
$(document).ready(function () { 
$("#btnCancel").click(function (e) { 
setTimeout("TestAlert('"+msgalert+"')",1000); 
}); 
})

这样的写法容易出错,还不容易检查出错误,如果使用闭包就可完全避免,改写如下
var msgalert="test"; 
function dalayAlert(msg ,time){ 
setTimeout( 
TestAlert(msg), 
time 
); 
} 
function TestAlert(msg) 
{ 
alert(msg) 
} $(document).ready(function () { 
$("#btnCancel").click(function (e) { 
dalayAlert(msgalert,1000) 
}); 
})

由于使用了闭包,也简单了很多,检查错误也很容易了
Javascript 相关文章推荐
js身份证验证超强脚本
Oct 26 Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 Javascript
JS实现带鼠标效果的头像及文章列表代码
Sep 27 Javascript
js实现卡片式项目管理界面UI设计效果
Dec 08 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
js实现加载更多功能实例
Oct 27 Javascript
layer弹出层中H5播放器全屏出错的解决方法
Feb 21 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
elementUI select组件默认选中效果实现的方法
Mar 25 Javascript
layui之table checkbox初始化时选中对应选项的方法
Sep 02 Javascript
vue绑定class的三种方法
Dec 24 Vue.js
js Map List 遍历使用示例
Jul 10 #Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 #Javascript
JS下拉框内容左右移动效果的具体实现
Jul 10 #Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 #Javascript
关于js遍历表格的实例
Jul 10 #Javascript
js浮动图片的动态效果
Jul 10 #Javascript
JS文本框默认值处理详解
Jul 10 #Javascript
You might like
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
Array.prototype.slice 使用扩展
2010/06/09 Javascript
Ext 今日学习总结
2010/09/19 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
浅析python递归函数和河内塔问题
2017/04/18 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Python WSGI的深入理解
2018/08/01 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
如何利用Python写个坦克大战
2020/11/18 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
酒店端午节活动方案
2014/08/26 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
总结几个非常实用的Python库
2021/06/26 Python