欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(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);})
解決方法是去掉引號(hào)和括號(hào),采用最原始的方法

$(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ǔ)啊!也是初學(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è)語句,用雙引號(hào)括了起來,里面的東西會(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(值)}。

相關(guān)文章

最新評(píng)論