使用闭包对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 相关文章推荐
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
May 13 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 Javascript
jQuery制作图片旋转效果
Feb 02 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
Aug 22 Javascript
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
JavaScript原始值与包装对象的详细介绍
May 11 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
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php 动态多文件上传
2009/01/18 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
PHP7新增函数
2021/03/09 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
完善的jquery处理机制
2016/02/21 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
python实现批量下载新浪博客的方法
2015/06/15 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
详解python算法之冒泡排序
2019/03/05 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
教师自荐信范文
2013/12/09 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
求职意向书范文
2014/04/01 职场文书
关于诚信的活动方案
2014/08/18 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
指导教师推荐意见
2015/06/05 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书