Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递给setIntervall函数_Javascript_Setinterval - Fatal编程技术网

Javascript 将变量传递给setIntervall函数

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());

我用下面的代码每5秒调用一个jQuery插件

    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
字符串-始终传递函数。