在写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)
});
})
~~~
由于使用了闭包,也简单了很多,检查错误也很容易了
- 前言
- js封装和作用域
- 封装html的select标签的js操作
- js正则表达式的使用
- 使用闭包对setTimeout进行简单封装
- js中如何复制一个对象,如何获取所有属性和属性对应的值
- js中如何把字符串转化为对象
- js操作iframe兼容各种浏览器
- js模板方法的思路及实现
- 在js中如何实现方法重载?以及函数的参数问题
- 单纯的html页面如何提交,传递参数,以及对身份的验证
- ajax如何调试
- js综合应用简单的表格统计
- js格式化货币数据
- js综合应用:表格的四则运算
- 如何在浏览器中打开PDF文件并实现预览的思路与代码
- js实现幻灯片效果
- js实现幻灯片效果二
- jquery-easyui必填项隐藏问题的处理方案
- jquery-easyui隐藏可用不可用的问题的处理方案
- js变量作用域--变量提升