使用闭包对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)
});
})
由于使用了闭包,也简单了很多,检查错误也很容易了
复制代码 代码如下:
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了解不是特别深入的话,很容易就会写出不兼容的代码(就像我),这时候就得判断浏览器了。比如事件侦听、一些鼠标和键盘事件、Range等,一些都会不一样.下面列出几种常用的检测浏览器方法,以飨观众!2010-04-04


最新评论