Antworten auf deine Fragen:
Neues Thema erstellen

jQuery - Funktionen erst wieder ausführen, wenn die zuletzt ausgeführte beendet ist!

Jimbim

Noch nicht viel geschrieben

Hi!

Ich versuche mich gerade an einer Slideshow mit jQuery.

Bin noch nicht so fit in Sachen jQuery.

Hier erstmal mein Code

Code:
$(document).ready(function(){

var slide =  $('.pic_team:first').css('top');
var lock = 0;

	$( "#slide_button_down" ).click(function(){
	
	slide =  $('.pic_team:first').css('top');
				
		if ((slide == '0px') || (lock == 1))
		{
		stop();
		}
	  	else
		{
		lock = 1;		
				
		$( ".pic_team:first" ).animate({top: '+=140'}, {
			duration: 2000,
			step: function( now, fx){
			$( ".pic_team:gt(0)" ).css( "top", now );
			
			}
		});
		lock = 0;
		
		}
	});
	
	
	
	$( "#slide_button_up" ).click(function(){
	
	slide =  $('.pic_team:first').css('top');
	
		if ((slide == '-420px') || (lock == 1))
		{ 
		stop();
		}
	  
		else
		{
		
		lock = 1;
		
		$( ".pic_team:first" ).animate({top: '-=140'}, {
			duration: 2000,
			step: function( now, fx ){
			$( ".pic_team:gt(0)" ).css( "top", now );
			
			}
		});
		
		lock = 0;
		}
	});

});

Also, folgendes so passieren: Zu Beginn werden die Variablen slide und lock mit den oben genannten Werten gesetzt. Das funktioniert auch soweit.
Es funktioniert auch die if-Anweisung soweit.
Was nicht funktioniert ist folgendes. Bevor meine Funktionen ausgeführt werden setze ich die Variable lock auf eins (soll heißen, die Funktion ist aktiv und es kann keine andere Funktion ausgeführt werden).
Nachdem die Funktionen abgearbeitet wurde, wird die Variable wieder auf 0 gesetzt (soll heißen, die Funktion ist beendet und eine andere oder die selbe Funktion kann wieder ausgeführt werden).

Diesen Effekt will ich (unter anderem) mit der if-Anweisung erzielen. Wo mach ich den Fehler?
 

Doitsu

Aktives Mitglied

AW: jQuery - Funktionen erst wieder ausführen, wenn die zuletzt ausgeführte beendet i

Schau dir mal den gueltigkeits Bereich von Variablen an.. (Globale, lokale Variablen)
 

Jimbim

Noch nicht viel geschrieben

AW: jQuery - Funktionen erst wieder ausführen, wenn die zuletzt ausgeführte beendet i

Also, ich setze meine Variablen vor der Funktion. Diese sind damit global und können immer und von jeder Funktion verwendet werden. Sehe ich des richtig?

In der Funktion wird die Variable lock anfangs auf 1 gesetzt und sollte erst nach dem Ende der Animation wieder auf 0 gesetzt werden. Ich glaube dass da mein Problem liegt. Kann es sein, dass der Code komplett abgearbeitet wird, egal wie lange die Animation dauert?
 

Doitsu

Aktives Mitglied

AW: jQuery - Funktionen erst wieder ausführen, wenn die zuletzt ausgeführte beendet i

Du setzt deine Variable in der Funktion 'ready' (bzw. genau genommen in der Funktion, die du als callback fuer den 'ready-Event' hinterlegst), also sind die Variablen auch nur in dieser Funktion verfuegbar.

In der 'click' Funktion setzt du diese Variable dann erneut, somit hast du sie 2x - ein mal im Callback, einmal im Klickhandler, beide haben nichts miteinander zu tun..

Edit: Wollen wir mal nicht so sein:
Code:
var lock = 0; // Jetzt erst ist sie Global und wird sowohl vom Callback als auch vom Klickhandler benutzt.

$(document).ready(function(){
....
 
Zuletzt bearbeitet:
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.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben