gpt4 book ai didi

javascript - 将变量传递给 setInterval 函数

转载 作者:行者123 更新时间:2023-11-29 16:25:54 25 4
gpt4 key购买 nike

我使用以下代码每 5 秒调用一个 jQuery 插件

    var now = new Date();

setInterval('$("#id").myplugin(now)', 1000);

到目前为止,插件看起来像这样:

    (function( $ ){
$.fn.myplugin = function(now) {
return this.each(function() {
alert(now.getTime());
});
}
})( jQuery );

但是我收到错误:

Uncaught ReferenceError: now is not defined
plugins.js:30 Uncaught TypeError: Cannot call method 'getTime' of undefined

所以看起来现在的时间对象没有传递给插件函数,甚至没有在 setInterval 方法中定义。我可能可以调用 var now = new Date();每次在插件功能中......但我想知道,为什么它会那样工作以及如何使其工作;)。非常感谢。

最佳答案

使用这样的函数:

var now = new Date();

setInterval(function() {
$("#id").myplugin(now);
}, 1000);

这样,所谓的 now 范围就设置为您调用 setInterval 的函数。否则,它只是您所引用的全局对象 (window),它没有 now

其次,传递字符串的方式类似于eval(),这是不安全且缓慢的:Why is eval unsafe in javascript? .

关于javascript - 将变量传递给 setInterval 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com