<strong>setTimeout()<br></strong>從載入後延遲指定的時間去執行一個表達式或是函數;<br>只執行一次;和window.clearTimeout一起使用.<br><br>我在<br><br><div class="codetitle"> <span><a style="CURSOR: pointer" data="88344" class="copybut" id="copybut88344" onclick="doCopy('code88344')"><u>複製程式碼</u></a></span> 程式碼如下:</div> <div class="codebody" id="code88344"> <br>$read(document). (){<br>setTimout(test(),200); <br>function test() <br>{ <br>alert(1); <br>} <br>}); <br> </div> <br><br>只會執行一次,有朋友說可以用<br><br><div class="codetitle"> <span><a style="CURSOR: pointer" data="80059" class="copybut" id="copybut80059" onclick="doCopy('code80059')"><u>複製程式碼</u></a></span> 程式碼:</div> <div class="codebody" id="code80059"> <br>setInterval ("showTime()", 5000);<br>function showTime()<br>{<br> var today = new Date();<br> time( " today.toString ());<br>}<br> </div> <br><br>但我呼叫下面方法也可以跟setInterval一樣哦<br><br><div class="codetitle"> <span><a style="CURSOR: pointer" data="58032" class="copybut" id="copybut58032" onclick="doCopy('code58032')"> <u>複製程式碼</u></a></span> 程式碼如下:</div> <div class="codebody" id="code58032"> <br><div id="div_debug"></div> <br><script language="JavaScript"><BR>//顯示<BR>function log(s){<BR> $('#div_debug').append(s '<br>');<BR>}<BR>//以下是setTimeout 在jQuery 中的用法<BR>function funA(){<BR> log('funA...');<BR> setTimeout('funA()', 1000);<BR>}<BR>Query(document (function($){<BR> //用法1 : 把要呼叫的函數寫在ready外面,使它成為全域函數<BR> funA();<BR> //用法2 : 直接寫函數名,不能帶括號也不能帶引號,適合沒有參數的函數<BR> function funB(){<BR> log('funB...');<BR> .> funB();<BR> //用法3 : 透過呼叫匿名函數來執行,適合有帶參數的函數<BR> function funC(v){<BR> log('funC...' > setTimeout(function(){funC(v 1)}, 1000);<BR> }<BR> funC(1);<BR> <BR> $.extend({<BR> funD:function(v){<BR> $.funD(" (v 1) ")" ,1000);<BR> }<BR> });<BR> $.funD(101);<BR>});<BR></script><br>jQuery中setTimeout的幾個使用方法<br><br><br>jQuery 中setTimeout/setInterval 不能像在原始生態javascript 中那樣使用, 否則會報錯. <br> </div>我們透過範例來說明一下jQuery中setTimeout的幾個使用方法, 首先準備好測試用的DIV和公共函數: <br><br><strong><br><br></strong>複製程式碼<br><br><br> 程式碼如下:<br><div class="codetitle"> <span><div id="div_debug"></div> <a style="CURSOR: pointer" data="97553" class="copybut" id="copybut97553" onclick="doCopy('code97553')"><script src="http://www.studyday.net/demo/jquery.js"></script> <u><script language="JavaScript"> </script></u>functionlog(s){ </a>$('#div_debug').append(s '<br>'); </span>} </div> <div class="codebody" id="code97553">//下文測試用的程式碼可以放在這一行註解的下面,替換掉//... <br>//... <br><br> <br><br> <br>原始生態javascript 中的setTimeout 基本用法是像這樣子的. <br><br><br><br><br><br>複製程式碼</div> <br><br><br>複製程式碼<div class="codetitle"> <span><a style="CURSOR: pointer" data="78990" class="copybut" id="copybut78990" onclick="doCopy('code78990')"><u>複製程式碼></u> </a>//原生態javascript 中的setTimeout 基本用法</span>functionfunA(){ </div>log('funA...'); <div class="codebody" id="code78990">setTimeout('funA()', 1000) ; <br>} <br>funA(); <br><br> <br><br>以下是jQuery中setTimeout的幾種使用方法. 線上實例<br> </div> <br><br><br><br>複製程式碼<div class="codetitle"><span><a style="CURSOR: pointer" data="61237" class="copybut" id="copybut61237" onclick="doCopy('code61237')"> 程式碼如下:<u><div class="codebody" id="code61237"> <br>//jQuery 中的用法<br>functionfunA(){ <br>log('funA...'); <br>setTimeout('funA()', 1000); <br>} <br><br>jQuery(document).ready(function($){ <br>//用法1 : 把要呼叫的函數寫在ready外面,使它成為全域函數<br>funA(); <br><br>//用法2 : 直接寫函數名,不能帶括號也不能帶引號,適合沒有參數的函數<br>functionfunB(){ <br>log('funB...'); <br> setTimeout(funB, 1000); <br>} <br>funB(); <br><br>//用法3 : 透過呼叫匿名函數來執行,適合有帶參數的函數<br>functionfunC(v){ <br>log('funC...' v); <br>setTimeout(function(){funC(v 1)}, 1000); <br>} <br>funC(1); <br><br>} <br>funC(1); <br><br>//用法4 : 透過在jQuery命名空間上增加函數,適用面更廣<br>$.extend({ <br>funD:function(v){ <br>log('funD...' v) ; <br>setTimeout("$.funD(" (v 1) ")",1000); <br>} <br>}); </div>$.funD(100); <br>}); <br><br> <br><div class="codetitle">用法2和用法3的區別很明顯, 但用法3和用法4的區別在哪裡呢?為什麼說用法4比用法3適用面更廣呢?通過下面這個例子可以很直觀的明白二者的差別: <span><a style="CURSOR: pointer" data="87940" class="copybut" id="copybut87940" onclick="doCopy('code87940')"><u></u></a></span>複製程式碼</div> <div class="codebody" id="code87940"> <br> 程式碼如下:<br><br><br><br> <br> <br> <br> >jQuery(document).ready(function($){ <br>//用法3 : 透過呼叫匿名函數來執行,適合有帶參數的函數<br>functionfunC(v){ <br>log('funC. ..' v); <br>setTimeout(function(){funC(v 1)}, 1000); <br>} <br><br>//用法4 : 透過在jQuery命名空間上增加函數,調用起來更方便<br>$.extend({ <br>funD:function(v){ <br>log('funD...' v); <br>setTimeout("$.funD(" (v 1) ")",1000); <br>} <br>}); </div>}); jQuery(document).ready(function($){ //funC(1) ; //去掉註解後執行這一句時會報錯$.funD(100); //這一句是正常的, 明白兩者之間的區別了吧}); </u></a></span></div>