關(guān)于setInterval、setTimeout在jQuery中的使用注意事項(xiàng)
更新時(shí)間:2011年09月28日 00:12:58 作者:
最近碰到個(gè)問題,在使用jquery寫定時(shí)器時(shí),總是會(huì)出現(xiàn)fn不存在的錯(cuò)誤提示
以前寫定時(shí)器的時(shí)候,總是習(xí)慣直接
setInterval("fn()",2000);
最近碰到個(gè)問題,在使用jquery寫定時(shí)器時(shí),總是會(huì)出現(xiàn)fn不存在的錯(cuò)誤提示,如下
$(function(){setInterval("fn()",2000);})
解決方法是去掉引號和括號,采用最原始的方法
$(function(){setInterval(fn,2000);})
另外一種就是在書寫jq的擴(kuò)展,如下
$(function(){
$.extend({
fn:function(){
alert("im fn!");
}
});
setInterval("$.fn()",2000);
});
以上寫法都是沒什么問題的。但是如果需要傳遞參數(shù)該如何?
像上面第一種寫法,
$(function(){setInterval(fn,2000);})
如果寫成
$(function(){setInterval(fn(para),2000);})
就報(bào)錯(cuò)了。這個(gè)比較經(jīng)典,比較白癡。
這時(shí)你可以內(nèi)置一個(gè)function,寫成
$(function(){setInterval(function(){fn(para)},2000);})
這樣也是可以的。
至于第二種方法如何傳遞,這就更簡單了,我就不多說了。
發(fā)到博客僅當(dāng)記憶使用,都是基礎(chǔ)?。∫彩浅鯇W(xué)者容易犯錯(cuò)的地方!
//========================
還是補(bǔ)充下第二種傳參的方法。
先看段代碼
$(function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index);
$start++;
}
});
setInterval("$.a("+$start+")",2000);
});
有一些人會(huì)嘗試這么去寫,結(jié)果是什么?結(jié)果就是alert出來的,一直是1,不會(huì)增加。這里需要注意的是setInterval里面的第一個(gè)參數(shù),這是一個(gè)語句,用雙引號括了起來,里面的東西會(huì)被解釋成變量。如果按照上面的寫法,相當(dāng)于
setInterval("$.a(1)",2000);
那么結(jié)果也就無可厚非了。正確的寫法,當(dāng)然是這樣
$(function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index);
$start++;
}
});
setInterval("$.a($start)",2000);
});
這時(shí)$start才會(huì)被解釋成變量。語句相當(dāng)于function(){a(變量)},而不是function(){a(值)}。
setInterval("fn()",2000);
最近碰到個(gè)問題,在使用jquery寫定時(shí)器時(shí),總是會(huì)出現(xiàn)fn不存在的錯(cuò)誤提示,如下
$(function(){setInterval("fn()",2000);})
解決方法是去掉引號和括號,采用最原始的方法
$(function(){setInterval(fn,2000);})
另外一種就是在書寫jq的擴(kuò)展,如下
復(fù)制代碼 代碼如下:
$(function(){
$.extend({
fn:function(){
alert("im fn!");
}
});
setInterval("$.fn()",2000);
});
以上寫法都是沒什么問題的。但是如果需要傳遞參數(shù)該如何?
像上面第一種寫法,
$(function(){setInterval(fn,2000);})
如果寫成
$(function(){setInterval(fn(para),2000);})
就報(bào)錯(cuò)了。這個(gè)比較經(jīng)典,比較白癡。
這時(shí)你可以內(nèi)置一個(gè)function,寫成
$(function(){setInterval(function(){fn(para)},2000);})
這樣也是可以的。
至于第二種方法如何傳遞,這就更簡單了,我就不多說了。
發(fā)到博客僅當(dāng)記憶使用,都是基礎(chǔ)?。∫彩浅鯇W(xué)者容易犯錯(cuò)的地方!
//========================
還是補(bǔ)充下第二種傳參的方法。
先看段代碼
復(fù)制代碼 代碼如下:
$(function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index);
$start++;
}
});
setInterval("$.a("+$start+")",2000);
});
有一些人會(huì)嘗試這么去寫,結(jié)果是什么?結(jié)果就是alert出來的,一直是1,不會(huì)增加。這里需要注意的是setInterval里面的第一個(gè)參數(shù),這是一個(gè)語句,用雙引號括了起來,里面的東西會(huì)被解釋成變量。如果按照上面的寫法,相當(dāng)于
setInterval("$.a(1)",2000);
那么結(jié)果也就無可厚非了。正確的寫法,當(dāng)然是這樣
復(fù)制代碼 代碼如下:
$(function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index);
$start++;
}
});
setInterval("$.a($start)",2000);
});
這時(shí)$start才會(huì)被解釋成變量。語句相當(dāng)于function(){a(變量)},而不是function(){a(值)}。
您可能感興趣的文章:
- setInterval和setTimeout停止的方法
- setTimeout和setInterval的區(qū)別你真的了解嗎?
- Jquery中使用setInterval和setTimeout的方法
- JavaScript SetInterval與setTimeout使用方法詳解
- Js中setTimeout()和setInterval() 何時(shí)被調(diào)用執(zhí)行的用法
- JS中setInterval、setTimeout不能傳遞帶參數(shù)的函數(shù)的解決方案
- setTimeout和setInterval的瀏覽器兼容性分析
- Javascript對象中關(guān)于setTimeout和setInterval的this介紹
- 定時(shí)器(setTimeout/setInterval)調(diào)用帶參函數(shù)失效解決方法
- JS中setTimeout和setInterval的最大延時(shí)值詳解
相關(guān)文章
jquery.tagsinput.js實(shí)現(xiàn)記錄checkbox勾選的順序
這篇文章主要為大家詳細(xì)介紹了jquery.tagsinput.js實(shí)現(xiàn)記錄checkbox勾選的順序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
教你用jquery實(shí)現(xiàn)iframe自適應(yīng)高度
iframe因?yàn)槟芎途W(wǎng)頁無縫的結(jié)合從而不刷新頁面的情況下更新頁面的部分?jǐn)?shù)據(jù)成為可能,可是 iframe的大小卻不像層那樣可以“伸縮自如”,所以帶來了使用上的麻煩,給iframe設(shè)置高度的時(shí)候多了也不好,少了更是不行,今天我們就來分享2種使用jquery實(shí)現(xiàn)iframe自適應(yīng)高度的代碼2014-06-06
使用jquery實(shí)現(xiàn)以post打開新窗口
網(wǎng)絡(luò)上已有此功能的函數(shù),是以純JS實(shí)現(xiàn),本文為大家介紹的使用jquery實(shí)現(xiàn),需要的朋友可以參考下2014-03-03
jQuery獲取Select選擇的Text和Value(詳細(xì)匯總)
Select選擇的Text和Value在使用中可能都需要獲取到它們的值,以至搜集用戶的需求,本文整理了一些常用而實(shí)用的操作技巧,感興趣的朋友可以了解下,就當(dāng)鞏固自己的知識(shí)了,希望本文對你有所幫助2013-01-01
jquery (show,fadeOut,Animate)簡單效果
jquery (show,fadeOut,Animate)簡單效果,需要的朋友可以參考下。2009-11-11
網(wǎng)頁瀑布流布局jQuery實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了網(wǎng)頁瀑布流布局jQuery實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

