国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

定時器(setTimeout/setInterval)調用帶參函數失效解決方法

2024-05-06 14:19:07
字體:
來源:轉載
供稿:網友
首先來看下定時器的用法
1. setInterval(code,millisec[,"lang"])  setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
參數描述
code必需,要調用的函數或要執行的代碼串。
millisec必需,周期性執行或調用 code 之間的時間間隔,以毫秒計。

2.setTimeout(code,millisec) setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。
參數描述
code必需,要調用的函數后要執行的 JavaScript 代碼串。
millisec必需,在執行代碼前需等待的毫秒數。

提示:setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。
也許你曾碰到過這樣的問題,不管是setInterval()還是setTimeout(),當code參數里放一個帶參函數時,定時器都會失效,看下面這個例子:
代碼如下:
function test(str){
alert(str);
}
var a = "abcde"
setTimeout(test(a),3000);

執行上面代碼,頁面不會延遲3秒調用test(a),而是會立即執行test(a),IE、FF、Chrome下都會出現這個問題,如果你經常用到定時器,這個問題應該應該經常會碰到,那么要怎樣去解決呢?
筆者在這里歸納兩種常用的解決方法,當然應該也還有其他的解決方法,在這里就不一一贅述。
方法1:用匿名函數包裹
代碼如下:
function test(str){
alert(str);
}
var a = "abcde"
setTimeout(function(){
test(a);
},3000);

方法2:用引號包裹需調用的函數
代碼如下:
function test(str){
alert(str);
}
var a = "abcde"
setTimeout("test('+a+')",3000);

上面只以setTimeout()為例,setInterval()同樣適用,這里就不在過多敘述了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 蓬安县| 莱阳市| 淮北市| 鞍山市| 四平市| 平远县| 浮山县| 定南县| 桂东县| 大埔区| 焉耆| 淳安县| 保康县| 武陟县| 高安市| 长海县| 西吉县| 蓬溪县| 灌云县| 丁青县| 凉城县| 乐陵市| 珲春市| 呼图壁县| 右玉县| 乐陵市| 瑞昌市| 东平县| 大渡口区| 鸡西市| 罗田县| 信丰县| 屏东县| 龙门县| 林甸县| 洛阳市| 禹州市| 武冈市| 寿光市| 奉化市| 馆陶县|