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
 

Duddle

Posting-Frequenz: 14µHz

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:

pascal.k

Basinga

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?
 

Duddle

Posting-Frequenz: 14µHz

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

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben