Warum setTimeout () - Funktion wird nur einmal?
Mache ich ein javascript bookmarklet, das die Größe aller Bilder in regelmäßigen Abständen.
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);
Aber es läuft nur einmal. Was ist hier das problem??
- Was versuchen Sie zu erreichen? Auch deine for-Schleife am Ende wohl gemeint sein
i++
. - Sie sollten das nicht tun
i<=document.getElementsByTagName('img').length
. Sie zulassen, indem Sie alle Bilder im Dokument, so oft, wie es Bilder. Sie sollten cache die Auswahl.var images = document.getElementsByTagName('img'); for( var i = 0, len = images.length; i < len; i++ )
Beachten Sie auch, dass ich<
statt<=
als gut. - scheint irgendwie nutzlos, da wenn Sie nicht halten Sie die Stoppuhr an Bildern wird wachsen für immer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie auf der Suche nach
setInterval()
stattsetTimeout()
durch Zufall?Hier ist der gleiche code richtig eingerückt für Klarheit
Fenster.setTimout() führt den übergebenen code nur einmal, weil es so gemeint ist. Wenn Sie wollen, um code auszuführen, öfter, verwenden Fenster.setInterval().
i++
.++
allein der Auslöser einer syntax-Fehler, obwohl?Sollte es nicht
i++
am Ende deiner for-Schleife?Gibt es auch einen syntax-Fehler.
for(i=0;i<=document.getElementsByTagName('img').Länge;i++)
Müssen Sie legen Sie die...
innerhalb der Funktion x() Klammern { } und es funktioniert mit SetTimeout()
Können Sie nur aufrufen, x (), nachdem alle Bilder geladen wurden, auf der Seite oder es ist ein Fehler.
Es könnte seinwindow.setTimeOut("x",100)
Bearbeiten : korrigieren Sie die Antwort auf diese
window.setTimeout(x,100)
.PS: das ist, was passiert, wenn Sie einfach arbeiten mit IDEs.
setTimeout
ist nicht richtig, und"x"
nichts.