jQuery中setTimeout的幾種使用方法小結

來源:互聯網
上載者:User

我們通過例子來說明一下jQuery中setTimeout的幾種使用方法, 首先準備好測試用的DIV和公用函數:

複製代碼 代碼如下:
<div id="div_debug"></div>
 <script src="http://www.studyday.net/demo/jquery.js"></script>
 <script language="JavaScript">
 functionlog(s){
     $('#div_debug').append(s+'<br>');
 }

 //下文中測試用的代碼可以放在這一行注釋的下面,替換掉 //...
 //...

 </script>

原生態 javascript 中的 setTimeout 基本用法是像這樣子的.

複製代碼 代碼如下:
 //原生態 javascript 中的 setTimeout 基本用法
 functionfunA(){
     log('funA...');
     setTimeout('funA()', 1000);
 }
 funA();

下面是jQuery中setTimeout的幾種使用方法. 線上執行個體

複製代碼 代碼如下:
 //jQuery 中的用法
 functionfunA(){
     log('funA...');
     setTimeout('funA()', 1000);
 }

 jQuery(document).ready(function($){
     //用法1 : 把要調用的函數寫在ready外面,使它成為全域函數
     funA();

     //用法2 : 直接寫函數名,不能帶括弧也不能帶引號,適合沒有參數的函數
     functionfunB(){
         log('funB...');
         setTimeout(funB, 1000);
     }
     funB();

     //用法3 : 通過調用匿名函數來執行,適合有帶參數的函數
     functionfunC(v){
         log('funC...'+v);
         setTimeout(function(){funC(v+1)}, 1000);
     }
     funC(1);

     //用法4 : 通過在jQuery命名空間上增加函數,適用面更廣
     $.extend({
         funD:function(v){
             log('funD...'+v);
             setTimeout("$.funD("+(v+1)+")",1000);
         }
     });
     $.funD(100);
 });

用法2和用法3的區別很明顯, 但用法3和用法4的區別在哪裡呢?為什麼說用法4比用法3適用面更廣呢?通過下面這個例子可以很直觀的明白二者的區別:

複製代碼 代碼如下:
 jQuery(document).ready(function($){
     //用法3 : 通過調用匿名函數來執行,適合有帶參數的函數
     functionfunC(v){
         log('funC...'+v);
         setTimeout(function(){funC(v+1)}, 1000);
     }

     //用法4 : 通過在jQuery命名空間上增加函數,調用起來更方便
     $.extend({
         funD:function(v){
             log('funD...'+v);
             setTimeout("$.funD("+(v+1)+")",1000);
         }
     });
 });

 jQuery(document).ready(function($){
     //funC(1);   //去掉注釋後執行這一句時會報錯
     $.funD(100); //這一句是正常的, 明白兩者之間的區別了吧
 });

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.