使用闭包对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 相关文章推荐
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
Mar 25 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
Javascript中实现String.startsWith和endsWith方法
Jun 10 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
Sep 20 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
基于Python的接口测试框架实例
2016/11/04 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Anaconda入门使用总结
2018/04/05 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
关于python多重赋值的小问题
2019/04/17 Python
python logging模块的使用总结
2019/07/09 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
小学一年级学生评语
2014/04/22 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2014年体育工作总结
2014/11/24 职场文书
简爱电影观后感
2015/06/10 职场文书
创业计划书之花店
2019/09/20 职场文书