Antworten auf deine Fragen:
Neues Thema erstellen

setInterval("aktion()",1000) in jQuery aufrufen

pascal.k

Basinga

Hallo, sagt mal warum kann ich innerhalb einer jQuery funktion eine function mit setInterfal nicht so aufrufen?
Code:
$(document).ready(function(){
   setInterval("aktion()", 1000);
   function aktion() {
        alert('test');
   }
}
Irgendwie geht es nur so. Aber ich brauche es anders um die Intervall zu starten und beenden zu können. ... geht zu sehr in die Materie, wenn ich jetzt mehr erklär. Hoffe man versteht mein Problem.
Code:
$(document).ready(function(){
   setInterval(function aktion() {
        alert('test');
   }, 1000);
}
Gruße, Bree
 

AW: setInterval("aktion()",1000) in jQuery aufrufen

Erstens schließt du ready() nicht richtig (verfolge die öffnenden und schließenden Klammern), zweitens muss die von setInterval() aufgerufene Funktion im globalen Gültigkeitsbereich erreichbar sein. Du definierst aktion() aber im Gültigkeitsbereich von der Funktion in ready(), das ist für setInterval() nicht sichtbar.

Korrektur: Die Funktion muss nur global sichtbar sein, wenn sie als String übergeben wird. Ansonsten reicht der entsprechende Funktionsname.

Ergo:

Code:
$(document).ready(function(){
   setInterval("aktion()", 1000);
});
function aktion() {
     alert('test');
}


Duddle
 
Zuletzt bearbeitet:
AW: setInterval("aktion()",1000) in jQuery aufrufen

Sorry, das falsche schließen der Klammern war keine Absicht. Ist beim Codekürzen passiert.

Ich möchte den Interval eigentlich mit einer jQuery .click funktion wieder starten. Vielleicht denk ich nach dem ganzen rumprogrammieren jetzt einfach viel zu kompliziert, aber geht das nicht?
 
AW: setInterval("aktion()",1000) in jQuery aufrufen

Ich hatte eine etwas unsaubere Formulierung benutzt: du musst aktion() nur global sichtbar haben, wenn du es als String übergibst. Ansonsten reicht der Funktionsname und aktion() kann überall definiert sein. Für deine konkrete Anwendung reicht sowas:

Code:
$(document).ready(function(){
	$("#starten").click(function() {
		foo = setInterval(aktion, 2000);
	}).click();

	$("#stoppen").click(function() {
		clearInterval(foo);
	});
	function aktion() {
		alert('test');
	}
});

Falls der Intervall nicht sofort starten soll, muss das .click() in Zeile 4 weg.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.867
Beiträge
1.539.637
Mitglieder
67.860
Neuestes Mitglied
Hawkness
Oben