在寫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變量作用域--變量提升