使用閉包對setTimeout進行簡單封裝避免出錯
更新時間:2013年07月10日 17:13:08 作者:
寫js腳本時經(jīng)常會用到一些拼寫函數(shù)的情況,例如調(diào)用setTimeout...查了很長時間,為什么就是彈不出對話框呢,使用閉包就可完全避免了
在寫js腳本時,經(jīng)常會用到一些拼寫函數(shù)的情況,例如調(diào)用setTimeout
var msgalert="test";
function TestAlert(msg)
{
alert(msg)
}
$(document).ready(function () {
$("#btnCancel").click(function (e) {
setTimeout("TestAlert("+msgalert+")",1000);
});
})
查了很長時間,為什么就是彈不出對話框呢。檢查了很長時間才發(fā)現(xiàn),原來是少了一對單引號
$(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)
});
})
由于使用了閉包,也簡單了很多,檢查錯誤也很容易了
復(fù)制代碼 代碼如下:
var msgalert="test";
function TestAlert(msg)
{
alert(msg)
}
$(document).ready(function () {
$("#btnCancel").click(function (e) {
setTimeout("TestAlert("+msgalert+")",1000);
});
})
查了很長時間,為什么就是彈不出對話框呢。檢查了很長時間才發(fā)現(xiàn),原來是少了一對單引號
復(fù)制代碼 代碼如下:
$(document).ready(function () {
$("#btnCancel").click(function (e) {
setTimeout("TestAlert('"+msgalert+"')",1000);
});
})
這樣的寫法容易出錯,還不容易檢查出錯誤,如果使用閉包就可完全避免,改寫如下
復(fù)制代碼 代碼如下:
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)
});
})
由于使用了閉包,也簡單了很多,檢查錯誤也很容易了
相關(guān)文章
javascript 瀏覽器類型和版本號檢測代碼(兼容多瀏覽器)
果對javascript了解不是特別深入的話,很容易就會寫出不兼容的代碼(就像我),這時候就得判斷瀏覽器了。比如事件偵聽、一些鼠標(biāo)和鍵盤事件、Range等,一些都會不一樣.下面列出幾種常用的檢測瀏覽器方法,以饗觀眾!2010-04-04
JavaScript用JSONP跨域請求數(shù)據(jù)實例詳解
Javascript跨域訪問是web開發(fā)者經(jīng)常遇到的問題,什么是跨域,就是一個域上加載的腳本獲取或操作另一個域上的文檔屬性。下面這篇文章主要介紹了JavaScript用JSONP跨域請求數(shù)據(jù)的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
JavaScript設(shè)計模式組合設(shè)計模式案例
這篇文章主要介紹了JavaScript設(shè)計模式組合設(shè)計模式案例,組合設(shè)計模式是用于將多個部分通過組合的方式行成一個整體,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-06-06
js實現(xiàn)QQ面板拖拽效果(慕課網(wǎng)DOM事件探秘)(全)
這篇文章主要為大家詳細介紹了QQ面板拖拽效果,探秘慕課網(wǎng)DOM事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
利用遞增的數(shù)字返回循環(huán)漸變的顏色的js代碼
其實很久前就想寫一個這樣的函數(shù)了。因為很多時候需要利用遞增數(shù)字返回一個漸變顏色序列,今天終于完成了。2008-10-10
js鼠標(biāo)經(jīng)過tab選項卡時實現(xiàn)切換延遲
這篇文章主要為大家詳細介紹了js鼠標(biāo)經(jīng)過tab選項卡時實現(xiàn)切換延遲效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03

