使用闭包对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实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
JavaScript 用cloneNode方法克隆节点的代码
Oct 15 Javascript
jquery 面包屑导航 具体实现
Jun 05 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
JavaScript输出当前时间Unix时间戳的方法
Apr 06 Javascript
js实现简单的验证码
Dec 25 Javascript
JS三目运算(三元运算)方法详解
Mar 01 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
vue里的data要用return返回的原因浅析
May 28 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
vue多个元素的样式选择器问题
Nov 29 Javascript
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
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
AngularJS快速入门
2015/04/02 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python中global用法实例分析
2015/04/30 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Windows下python3.7安装教程
2018/07/31 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
python 画图 图例自由定义方式
2020/04/17 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
python中字符串的编码与解码详析
2020/12/03 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
优秀社区干部事迹材料
2014/02/03 职场文书
超市创意活动方案
2014/08/15 职场文书
银行奉献演讲稿
2014/09/16 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis