Javascript 将变量传递给setIntervall函数
我用下面的代码每5秒调用一个jQuery插件Javascript 将变量传递给setIntervall函数,javascript,setinterval,Javascript,Setinterval,我用下面的代码每5秒调用一个jQuery插件 var now = new Date(); setInterval('$("#id").myplugin(now)', 1000); 到目前为止,该插件如下所示: (function( $ ){ $.fn.myplugin = function(now) { return this.each(function() { alert(now.getTime());
var now = new Date();
setInterval('$("#id").myplugin(now)', 1000);
到目前为止,该插件如下所示:
(function( $ ){
$.fn.myplugin = function(now) {
return this.each(function() {
alert(now.getTime());
});
}
})( jQuery );
但是我得到了一个错误:
未捕获引用错误:现在未定义plugins.js:30未捕获类型错误:无法调用未定义的
因此,看起来好像now time对象没有被传递到plugin函数,甚至没有在setInterval方法中定义。我可能现在可以调用var=newdate();每次在插件函数中。。。但我想知道,为什么它不能像那样工作,以及如何使它工作;)。thx很多。使用如下函数:
var now = new Date();
setInterval(function() {
$("#id").myplugin(now);
}, 1000);
这样,所谓的now
范围设置为调用setInterval
的函数。否则,它只是您所引用的全局对象(窗口
),它现在没有
其次,传递字符串的工作方式类似于eval()
,这既不安全又缓慢:。请改用以下方式:
setInterval(function(){$("#id").myplugin(now)}, 1000);
这正是做这件事的方法。切勿传递
setInterval
字符串-始终传递函数。