Ich bin mir nicht sicher, ob das, was ich versuche, möglich ist, oder ob es einen einfacheren Weg gibt, das zu tun, was ich versuche.JavaScript-Variable von außerhalb der Funktion ersetzen
Ich habe den folgenden Code:
<script>
function TitleSwitch() {
var counter = 0,
fn = function() {
var array = ['Value1','Value2','Value3'];
$(document).prop('title', array[counter]);
counter++;
counter %= array.length;
};
fn();
return fn;
}
setInterval(TitleSwitch(), 5000);
</script>
Er dreht den Seitentitel zwischen den drei Variablen, Wert1, Wert2 und Wert3 alle 5 Sekunden. Das funktioniert gut.
Allerdings gibt es auf der gleichen Seite einige Ajax-Skripte, die nach anderen Informationen bezüglich der App fragen.
Ich versuche, einige der Daten aus dem Abruf-Skript verwenden, um die Werte in der Titelwechselfunktion zu ändern.
Als Beispiel können die Abfragedaten stattdessen Value4, Value5 und Value6 zurückgeben.
So in dem obigen Code, gibt es eine Möglichkeit, die Werte in
var array = ['Value1','Value2','Value3'];
von einer anderen Funktion, außerhalb des Titels Umschaltfunktion zu ersetzen?
Also habe ich eine Funktion namens pollingDone(), die jedes Mal aufgerufen wird, wenn die Abrufdaten zurückgegeben werden, wie kann ich die Werte von "Array" in TitleSwitch() von pollingDone() nach TitleSwitch() ändern läuft schon mit setInterval?
Im Grunde wollte ich TitleSwitch laufen lassen, aber nur die verwendeten Werte ersetzen.
Der Grund, warum ich es auf diese Weise versuchte, ist, weil die Titel alle 5 Sekunden zwischen den drei Werten umgeschaltet werden, das Abfrageskript jedoch alle 10 Sekunden ausgeführt wird. Wenn ich also die TitleSwitch() - Funktion bei jedem Abschluss des Abruf-Skripts gestartet habe, wird der dritte Wert niemals im Titel angezeigt. Die ersten beiden würden zeigen, das Polling-Skript würde laufen, und dann würden die Titel von vorn beginnen. Also habe ich gehofft, die TitleSwitch() -Funktion so zu lassen, wie sie ist, und einfach die Werte zu ersetzen, die sie benutzt.
Ich habe auch meine Frage ein wenig aktualisiert, um zu erklären, warum ich versuche, die Dinge so zu machen. –