使用闭包对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)
});
})

由于使用了闭包,也简单了很多,检查错误也很容易了

相关文章

  • Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面

    Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面

    这篇文章主要介绍了Bootstrap编写一个兼容IE8、谷歌等主流浏览器的受众巨幕式风格页面,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • promise和co搭配生成器函数方式解决js代码异步流程的比较

    promise和co搭配生成器函数方式解决js代码异步流程的比较

    这篇文章主要介绍了promise和co搭配生成器函数方式解决js代码异步流程的比较,在es6中引入的原生Promise为js的异步回调问题带来了一个新的解决方式co模块搭配Generator函数的同步写法,更是将js的异步回调带了更优雅的写法。感兴趣的小伙伴们可以参考一下
    2018-05-05
  • JS实现页面侧边栏效果探究

    JS实现页面侧边栏效果探究

    这篇文章主要介绍了JS实现页面侧边栏效果探究,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • JavaScript实现动态高度过渡的3种方式总结

    JavaScript实现动态高度过渡的3种方式总结

    这篇文章主要为大家详细介绍了JavaScript实现动态高度过渡的3种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • postcss-pxtorem实现页面自适应的原理解析

    postcss-pxtorem实现页面自适应的原理解析

    postcss-pxtorem是一个PostCSS插件,用于将CSS中的像素值转换为rem单位,以实现响应式布局和适配不同屏幕尺寸的需求,本文给大家介绍postcss-pxtorem实现页面自适应的原理解析,感兴趣的朋友一起看看吧
    2023-12-12
  • JavaScript中innerHTML,innerText,outerHTML的用法及区别

    JavaScript中innerHTML,innerText,outerHTML的用法及区别

    在javascript中如果我们要获取对象内容,js为我们提供了三种方法outerhtml、innerhtml和innertext,但他们之间具体怎么使用与具体的区别在哪里,可能很多人不知道吧,接下来跟着小编一起来学习innerHTML,innerText,outerHTML的用法及区别吧。
    2015-09-09
  • 利用js读取动态网站从服务器端返回的数据

    利用js读取动态网站从服务器端返回的数据

    这篇文章主要介绍了利用js读取动态网站从服务器端返回的数据,需要的朋友可以参考下
    2014-02-02
  • js 轮播效果实例分享

    js 轮播效果实例分享

    本文主要分享了基于js实现的轮播效果的实例代码,具有一定的参考价值,下面跟着小编一起来看下吧
    2016-12-12
  • js 剪切、复制、粘贴功能实现

    js 剪切、复制、粘贴功能实现

    Navigator.clipboard API可以用来访问系统剪贴板,可以实现【剪切、复制、粘贴】功能。该 API 被设计用来取代使用 document.execCommand() 的剪贴板访问方式,不兼容 IE
    2023-05-05
  • QTreeWidget中MainWindow窗体中布局器不起作用详解

    QTreeWidget中MainWindow窗体中布局器不起作用详解

    本文主要介绍了QTreeWidget中MainWindow窗体中布局器不起作用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论