`

关于setInterval、setTimeout在jQuery中的应用

 
阅读更多

 

转:http://www.jb51.net/article/28409.htm

最近碰到个问题,在使用jquery写定时器时,总是会出现fn不存在的错误提示

以前写定时器的时候,总是习惯直接 

setInterval("fn()",2000); 
最近碰到个问题,在使用jquery写定时器时,总是会出现fn不存在的错误提示,如下 

$(function(){setInterval("fn()",2000);}) 
解决方法是去掉引号和括号,采用最原始的方法 

$(function(){setInterval(fn,2000);}) 
另外一种就是在书写jq的扩展,如下 

复制代码代码如下:

$(function(){ 
$.extend({ 
fn:function(){ 
alert("im fn!"); 

}); 
setInterval("$.fn()",2000); 
}); 

以上写法都是没什么问题的。但是如果需要传递参数该如何? 

像上面第一种写法, 

$(function(){setInterval(fn,2000);}) 
如果写成 

$(function(){setInterval(fn(para),2000);}) 
就报错了。这个比较经典,比较白痴。 

这时你可以内置一个function,写成 

$(function(){setInterval(function(){fn(para)},2000);}) 
这样也是可以的。 

至于第二种方法如何传递,这就更简单了,我就不多说了。 

发到博客仅当记忆使用,都是基础啊!也是初学者容易犯错的地方! 


//======================== 

还是补充下第二种传参的方法。 

先看段代码 
复制代码代码如下:

$(function(){ 
$start = 1; 
$.extend({ 
a:function(t){ 
$index = t; 
alert($index); 
$start++; 

}); 
setInterval("$.a("+$start+")",2000); 
}); 

有一些人会尝试这么去写,结果是什么?结果就是alert出来的,一直是1,不会增加。这里需要注意的是setInterval里面的第一个参数,这是一个语句,用双引号括了起来,里面的东西会被解释成变量。如果按照上面的写法,相当于 

setInterval("$.a(1)",2000); 
那么结果也就无可厚非了。正确的写法,当然是这样 
复制代码代码如下:

$(function(){ 
$start = 1; 
$.extend({ 
a:function(t){ 
$index = t; 
alert($index); 
$start++; 

}); 
setInterval("$.a($start)",2000); 
}); 

这时$start才会被解释成变量。语句相当于function(){a(变量)},而不是function(){a(值)}。
分享到:
评论

相关推荐

    关于setInterval、setTimeout在jQuery中的使用注意事项

    首先,setInterval和setTimeout方法在jQuery中依然可用,它们不需要通过jQuery来调用,因为它们是原生JavaScript的一部分。然而,在与jQuery代码结合时,需要注意函数名的正确引用。 在我们的例子中,开发人员在...

    jQuery setTimeout()函数使用方法

    setTimeout()从载入后延迟指定的时间去执行一个表达式或者是函数;仅执行一次 ;和window.clearTimeout一起使用.我在 代码如下:$(document).ready(function(){setTimout(test(),200); function test() { alert(1&#...

    setInterval,setTimeout与jquery混用的问题

    在JavaScript和jQuery中,`setInterval` 和 `setTimeout` 是两个非常重要的定时器函数,用于在指定的时间间隔后执行特定的代码。然而,当它们与jQuery库一起使用时,可能会出现一些问题,尤其是在DOM未完全加载的...

    Jquery中使用setInterval和setTimeout的方法

    在JQuery中使用setInterval和setTimeout方法是JavaScript编程中的常见需求,特别是在需要周期性执行任务或延时执行任务时。这两个方法虽然语法相近,但功能和使用场景有所区别。在使用时,经常需要结合JQuery的ready...

    jQuery中setTimeout的几种使用方法小结

    `setTimeout`和`setInterval`在原生JavaScript中的用法与在jQuery中有些许不同,主要是因为jQuery主要关注的是DOM操作和事件处理,而不是全局函数的调度。 在原生JavaScript中,`setTimeout`的基本用法是传递一个...

    jquery仿IPad应用

    在jQuery中,可以使用`$(window).width()`来获取窗口宽度,并根据宽度变化调整布局,实现响应式设计。结合媒体查询(Media Queries)可以让网页在不同设备上呈现出最佳视觉效果。 2. **页面滑动效果**:iPad的平滑...

    jQuery服装商城管理系统

    《jQuery在服装商城管理系统中的应用深度解析》 在当今互联网技术日新月异的时代,前端开发框架和库的使用极大地提升了网页的交互性和用户体验。其中,jQuery以其易用性、高效性和广泛支持的特性,成为了许多开发者...

    jQuery范范应用页面动态背景.zip

    在本项目"jQuery范范应用页面动态背景.zip"中,主要展示了如何利用jQuery库来实现一个具有动态背景效果的Web页面。这个项目涉及到前端开发的关键技术,包括CSS、JavaScript、jQuery以及HTML5。我们将深入探讨这些...

    JQuery中SetTimeOut传参问题探讨

    标题中提到的“JQuery中SetTimeOut传参问题探讨”说明我们要探讨的是在使用JavaScript的JQuery库进行编程时,如何在使用`setTimeout`或`setInterval`函数时传递参数的问题。`setTimeout`和`setInterval`是JavaScript...

    模态对话框导致setTimeout失效的解决方案(一)

    在IT行业中,我们经常遇到各种各样的问题,其中之一就是在使用模态对话框时,发现`setTimeout`函数似乎不再按照预期工作。这个问题主要出现在JavaScript编程环境中,尤其是在与UI交互时。模态对话框,如Bootstrap的...

    setTimeout内不支持jquery的选择器的解决方案

    这样,即使在`setTimeout`的异步回调中,我们也可以通过`$this`来访问到正确的jQuery对象,并对其应用`.css()`方法来改变样式。 ### 总结 `setTimeout`和`setInterval`是JavaScript中非常有用的定时器函数,允许...

    5秒后跳转效果(setInterval/SetTimeOut)

    `setInterval` 和 `setTimeout` 是JavaScript中的两个重要函数,常用于定时任务的执行,包括实现5秒后的自动跳转效果。下面将详细解释这两个函数的工作原理以及如何在实际应用中使用它们。 首先,`setInterval` ...

    jQueryTimers

    jQuery Timers 是一款专为 jQuery 设计的插件,它扩展了原生JavaScript中的setTimeout和setInterval函数,提供了更方便、更强大的定时器管理功能。这个插件的主要目的是简化在JavaScript和jQuery应用中处理定时任务...

    JQuery 游戏 俄罗斯方块 代码

    在jQuery中,可以利用定时器(`setInterval`或`setTimeout`)来模拟游戏的实时性,如设定每秒下降一格。方块的旋转可以通过计算每个方块单元的坐标变化实现,这涉及到矩阵旋转的数学知识。而方块与底部或已有方块的...

    jQuery loading加载动画特效

    在jQuery中,我们可以利用定时器和CSS类的切换来实现这样的效果。例如,每间隔一定时间(如200毫秒)就切换一个CSS类,使图标或元素呈现动态变化。 四、实现步骤 1. 引入jQuery库:首先,确保HTML文件中引入了...

    jQuery制作温馨浪漫爱心表白动画特效

    在jQuery中,可以使用`.delay()`方法添加延迟,或者结合`.setTimeout()`或`.setInterval()`函数来控制动画的时间轴。例如,爱心可能按照特定的时间间隔依次出现,营造出浪漫的节奏感。 项目中的“其中内容根据自己...

    jquery网页静止自动执行jquery.timers

    `jQuery Timers`插件的核心功能是提供了一种方式,使得JavaScript的计时器(如`setTimeout`和`setInterval`)在浏览器的后台模式下依然有效。这在处理需要实时更新内容的网页,如股票报价、聊天应用或者在线协作工具...

Global site tag (gtag.js) - Google Analytics