jquery set timeout 用法

简介: 引用:http://www.studyday.net/2011/01/177 jQuery 中 setTimeout/setInterval 不能像在原生态 javascript 中那样使用, 否则会报错.

引用:http://www.studyday.net/2011/01/177

jQuery 中 setTimeout/setInterval 不能像在原生态 javascript 中那样使用, 否则会报错.
我们通过例子来说明一下jQuery中setTimeout的几种使用方法, 首先准备好测试用的DIV和公共函数:

01 <div id="div_debug"></div>
02 <script src="http://www.studyday.net/demo/jquery.js"></script>
03 <script language="JavaScript">
04 function log(s){
05     $('#div_debug').append(s+'<br>');
06 }
07  
08 //下文中测试用的代码可以放在这一行注释的下面,替换掉 //...
09 //...
10  
11 </script>

原生态 javascript 中的 setTimeout 基本用法是像这样子的.

1 //原生态 javascript 中的 setTimeout 基本用法
2 function funA(){
3     log('funA...');
4     setTimeout('funA()', 1000);
5 }
6 funA();

下面是jQuery中setTimeout的几种使用方法. 在线实例

01 //jQuery 中的用法
02 function funA(){
03     log('funA...');
04     setTimeout('funA()', 1000);
05 }
06  
07 jQuery(document).ready(function($){
08     //用法1 : 把要调用的函数写在ready外面,使它成为全局函数
09     funA();
10  
11     //用法2 : 直接写函数名,不能带括号也不能带引号,适合没有参数的函数
12     function funB(){
13         log('funB...');
14         setTimeout(funB, 1000);
15     }
16     funB();
17  
18     //用法3 : 通过调用匿名函数来执行,适合有带参数的函数
19     function funC(v){
20         log('funC...'+v);
21         setTimeout(function(){funC(v+1)}, 1000);
22     }
23     funC(1);
24  
25     //用法4 : 通过在jQuery命名空间上增加函数,适用面更广
26     $.extend({
27         funD:function(v){
28             log('funD...'+v);
29             setTimeout("$.funD("+(v+1)+")",1000);
30         }
31     });
32     $.funD(100);
33 });

用法2和用法3的区别很明显, 但用法3和用法4的区别在哪里呢?为什么说用法4比用法3适用面更广呢?通过下面这个例子可以很直观的明白二者的区别:

01 jQuery(document).ready(function($){
02     //用法3 : 通过调用匿名函数来执行,适合有带参数的函数
03     function funC(v){
04         log('funC...'+v);
05         setTimeout(function(){funC(v+1)}, 1000);
06     }
07  
08     //用法4 : 通过在jQuery命名空间上增加函数,调用起来更方便
09     $.extend({
10         funD:function(v){
11             log('funD...'+v);
12             setTimeout("$.funD("+(v+1)+")",1000);
13         }
14     });
15 });
16  
17 jQuery(document).ready(function($){
18     //funC(1);   //去掉注释后执行这一句时会报错
19     $.funD(100); //这一句是正常的, 明白两者之间的区别了吧
20 });

另外 setInterval 也同样适合上面所说的4种方法.

相关文章
|
JavaScript
jQuery :nth-of-type(n)选择器的用法详解
jQuery中,:nth-of-type(n)选择器可以对selector选择器匹配选择到的所有HTML元素进行二次匹配选择,为了更好地阐述:nth-of-type(n)的语法,这里假设selector是一个元素p选择器,如此,:nth-of-type(n)可以用于匹配p元素选择器选择到的p元素指向的父元素中第n个类型为p的子元素,而且与p是否是该父元素的第n个子元素无关,比如
152 5
|
JavaScript 前端开发 API
【前端用法】jQuery在线引用地址(全)
【前端用法】jQuery在线引用地址(全)
2974 0
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
385 3
【C++】map、set基本用法
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
存储 C++ 容器
C++ 第九节——map/set(用法+底层原理+模拟实现)
们需要知道的是,Map和Set的底层都是红黑树。
1384 1
C++ 第九节——map/set(用法+底层原理+模拟实现)
|
缓存 前端开发 JavaScript
【前端用法】jquery获取当前页面的URL信息
【前端用法】jquery获取当前页面的URL信息
246 0
vb窗体实例化与set语句的用法
vb窗体实例化与set语句的用法
|
索引 Python
Pandas中的时间序列利器:set_index用法
Pandas中的时间序列利器:set_index用法
996 0
|
存储 索引 Python
Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法
Python 中的 Dict(字典)、List(列表)、Tuple(元组)和 Set(集合)是常用的数据结构,它们各自有着不同的特性和用途。在本文中,我们将深入了解这些数据结构的高级用法,并提供详细的说明和代码示例。
1158 2

相关课程

更多