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种方法.

相关文章
|
10月前
|
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个子元素无关,比如
70 5
|
JavaScript 前端开发 API
【前端用法】jQuery在线引用地址(全)
【前端用法】jQuery在线引用地址(全)
1964 0
|
4月前
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
85 3
【C++】map、set基本用法
|
6月前
|
SQL XML Java
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标签的用法
|
6月前
|
索引 Python
Pandas中的时间序列利器:set_index用法
Pandas中的时间序列利器:set_index用法
177 0
|
8月前
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
1084 2
mysql中find_in_set()函数用法详解及增强函数
|
9月前
|
存储 索引 Python
Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法
Python 中的 Dict(字典)、List(列表)、Tuple(元组)和 Set(集合)是常用的数据结构,它们各自有着不同的特性和用途。在本文中,我们将深入了解这些数据结构的高级用法,并提供详细的说明和代码示例。
487 2
|
9月前
|
JavaScript 前端开发
必知的技术知识:jQuery中queue和dequeue的用法
必知的技术知识:jQuery中queue和dequeue的用法
40 0
|
缓存 前端开发 JavaScript
【前端用法】jquery获取当前页面的URL信息
【前端用法】jquery获取当前页面的URL信息
114 0
|
10月前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别
106 0

相关课程

更多