最近碰到个问题,在使用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(值)}
总之,要记住自己是在使用js库jquery进行开发,一切规则必须符合jQuery支持的规则,尽量使用jQuery支持的对象与规则,否则可能不能到达效果。
分享到:
相关推荐
setTimeout()从载入后延迟指定的时间去执行一... 只会执行一次,有朋友说可以使用 代码如下:setInterval (“showTime()”, 5000);function showTime(){ var today = new Date(); alert(“The time is: ” + today.to
应用jQuery的扩展可以解决这个问题。 代码如下:$(document).ready(function(){$.extend({ show:function(){ alert(“ready”); }});setInterval(“show()”,3000);});方法2. 指定定时执行的函数时不要...
setInterval setTimeout.html
注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串。 millisec 必需,在执行代码前需等待的毫秒数。 setTimeinterval ...
当遇到setInterval,setTimeout与jquery混用的问题 时,直接按JavaScript中的语法写并不起作用,有以下两种解决方法
使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。
关于JS定时器(setTimeout setInterval)定时不准问题1
JS中的setTimeout和setInterval的区别JS中的setTimeout和setInterval的区别JS中的setTimeout和setInterval的区别
jQuery 中 setTimeout/setInterval 不能像在原生态 javascript 中那样使用, 否则会报错.
Javascript定时器(二)——setTimeout与setInterval 在 http://www.cnblogs.com/strick/p/3983904.html 有说明
js中的setInterval和setTimeout使用实例.docx
在node.js中可以使用node.js内置的setTimeout(callback,delayMillSeconds,[args])方法。当调用setTime()时回调函数会在delayMillSeconds后 执行.setTime() 会返回一个定时器对象ID,可以在delayMillSeconds到期前将...
NULL 博文链接:https://rainbow702.iteye.com/blog/1668935
js 代码中执行循环事件时,经常会用到 setInterval 和 setTimeout 这两个方法,关于这两个方法的细节这里不详细讨论了,简要分享下在需要停止循环事件的时候该如何操作。 (1)setInterval 方法可按照指定的周期(以...
js中SetInterval与setTimeout用法.pdf
详细讲解SetInterval与setTimeout的区别和用法