电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

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


发布日期:2018/2/22
 

在写js脚本时经常会用到一些拼写函数的情况例如调用setTimeout

复制代码 代码如下:
var msgalert="test";
function TestAlert(msg)
{
alert(msg)
}

$(document)ready(function () {
$("#btnCancel")click(function (e) {
setTimeout("TestAlert("+msgalert+")");
});
})


查了很长时间为什么就是弹不出对话框呢检查了很长时间才发现原来是少了一对单引号

复制代码 代码如下:
$(document)ready(function () {
$("#btnCancel")click(function (e) {
setTimeout("TestAlert("+msgalert+")");
});
})


这样的写法容易出错还不容易检查出错误如果使用闭包就可完全避免改写如下

复制代码 代码如下:
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)
});
})


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

上一篇:根据ID填充文本框的实例代码

下一篇:GridView中获取被点击行中的DropDownList和TextBox中的值