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

 更新时间:2013年07月10日 17:13:08   作者:  
写js脚本时经常会用到一些拼写函数的情况,例如调用setTimeout...查了很长时间,为什么就是弹不出对话框呢,使用闭包就可完全避免了
在写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 浏览器类型和版本号检测代码(兼容多浏览器)

    果对javascript了解不是特别深入的话,很容易就会写出不兼容的代码(就像我),这时候就得判断浏览器了。比如事件侦听、一些鼠标和键盘事件、Range等,一些都会不一样.下面列出几种常用的检测浏览器方法,以飨观众!
    2010-04-04
  • JavaScript用JSONP跨域请求数据实例详解

    JavaScript用JSONP跨域请求数据实例详解

    Javascript跨域访问是web开发者经常遇到的问题,什么是跨域,就是一个域上加载的脚本获取或操作另一个域上的文档属性。下面这篇文章主要介绍了JavaScript用JSONP跨域请求数据的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • JavaScript手机振动API

    JavaScript手机振动API

    现代浏览器里提供的新的API越来越倾向于移动手机应用,这篇文章主要为大家详细介绍了JavaScript手机振动API的相关资料,需要的朋友可以参考下
    2016-06-06
  • js中switch case循环实例代码

    js中switch case循环实例代码

    这篇文章主要介绍了js中switch case循环实例代码,有需要的朋友可以参考一下
    2013-12-12
  • JavaScript设计模式组合设计模式案例

    JavaScript设计模式组合设计模式案例

    这篇文章主要介绍了JavaScript设计模式组合设计模式案例,组合设计模式是用于将多个部分通过组合的方式行成一个整体,更多相关内容需要的小伙伴可以参考一下
    2022-06-06
  • js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)

    js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)

    这篇文章主要为大家详细介绍了QQ面板拖拽效果,探秘慕课网DOM事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 利用递增的数字返回循环渐变的颜色的js代码

    利用递增的数字返回循环渐变的颜色的js代码

    其实很久前就想写一个这样的函数了。因为很多时候需要利用递增数字返回一个渐变颜色序列,今天终于完成了。
    2008-10-10
  • js鼠标经过tab选项卡时实现切换延迟

    js鼠标经过tab选项卡时实现切换延迟

    这篇文章主要为大家详细介绍了js鼠标经过tab选项卡时实现切换延迟效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • js压缩利器

    js压缩利器

    这篇文章主要介绍了js压缩利器
    2007-02-02
  • 采用call方式实现js继承

    采用call方式实现js继承

    这篇文章主要介绍了如何采用call方式实现js继承,需要的朋友可以参考下
    2014-05-05

最新评论