为什么 setTimeout() 函数只运行一次?

发布于 2024-10-09 04:29:42 字数 291 浏览 6 评论 0原文

我正在制作一个 javascript 书签,可以定期调整所有图像的大小。

javascript: function x(){
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

但它只运行一次。这里有什么问题?

I am making a javascript bookmarklet that resizes all images, periodically.

javascript: function x(){
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

But it runs only once. What is the problem here??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

看春风乍起 2024-10-16 04:29:42

您是否正在寻找 setInterval() 而不是 setTimeout()

t = window.setInterval("x()",100);

Are you looking for setInterval() instead of setTimeout() by any chance?

t = window.setInterval("x()",100);
用心笑 2024-10-16 04:29:42

为了清楚起见,这里是正确缩进的相同代码

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

window.setTimout() 仅执行传递的代码一次,因为它是有意的。如果您想更频繁地执行代码,请使用 window.setInterval()。

Here is the same code properly indented for clarity

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

window.setTimout() executes the passed code only once because it is meant to. If you want to execute code more often, use window.setInterval().

千鲤 2024-10-16 04:29:42

for 循环末尾不应该是 i++ 吗?

Shouldn't it be i++ at the end of your for loop?

榕城若虚 2024-10-16 04:29:42

另外还有一个语法错误。

for(i=0;i<=document.getElementsByTagName('img').length;i++)

Also there is a syntax error.

for(i=0;i<=document.getElementsByTagName('img').length;i++)

仅冇旳回忆 2024-10-16 04:29:42

您需要将...放在

t = window.setTimeout("x()",100);

函数 x() 括号 { } 内,它与 SetTimeout() 一起使用。

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;

t = window.setTimeout("x()",100);
};

    x();

void(0);

您只能在所有图像都加载到页面上或出现错误后调用 x()。

You need to put the...

t = window.setTimeout("x()",100);

inside the function x() brackets { } and it works with SetTimeout()

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;

t = window.setTimeout("x()",100);
};

    x();

void(0);

You can only call x() after all the images have been loaded on the page or there is an error.

忆悲凉 2024-10-16 04:29:42

可能是window.setTimeOut("x",100)

编辑:更正此window.setTimeout(x,100)的答案。

PS:如果您只是使用 IDE,就会发生这种情况。

It might be window.setTimeOut("x",100)

Edit : correct the answer to this window.setTimeout(x,100).

PS: thats what happens if you simply work with a IDEs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文