使用闭包对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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
google地图的路线实现代码
Aug 20 Javascript
javascript动态加载二
Aug 22 Javascript
jQuery与getJson结合的用法实例
Aug 07 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 Javascript
使用原生的javascript来实现轮播图
Feb 24 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
关于微信小程序map组件z-index的层级问题分析
Jul 09 Javascript
创建与框架无关的JavaScript插件
Dec 01 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 Undefined index报错的修复方法
2011/07/17 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
使javascript也能包含文件
2006/10/26 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python谱减法语音降噪实例
2019/12/18 Python
python软件都是免费的吗
2020/06/18 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
大学军训通讯稿
2014/01/13 职场文书
物流管理专业自荐信
2014/06/23 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
初中中等生评语
2014/12/29 职场文书
springboot实现string转json json里面带数组
2022/06/16 Java/Android