• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Javascript multiklick

MarcB

New member
Hi, folgende Frage:

Code:
main {
/*..*/
var menu_inprogress = 0;
	if(menu_inprogress === 0){	
	     $('#tile1-2').click(function() {
                menu_inprogress = 1;
                /*  code
                 *
                 *
                 */
                 menu_inprogress = 0;
               }
         }
}

Kurze erklärung:
Innerhalb der click Funktion findet eine Animation statt, in der ein Menü ein- bzw. ausgeklappt wird.
Die
Code:
menu_inprogress
Variable soll verhindern, dass die Animation per Klick neu gestartet wird, während sie noch läuft - Genau das funktioniert aber leider nicht.. Jemand eine Erklärung dafür ?
lg

Edit: Hab leider verfehlt das richtige Forum zu treffen-sorry
 
Zuletzt bearbeitet:
*verschoben aus Links, Tuts usw.*

Das läuft vermutlich asynchron, das heißt, das Toggeln der Variable muss jeweils in das ready Callback der jeweiligen Funktion. Außerdem sind if Abfrage und .click() Zuweisung falsch herum.
 
Das Callback hängt von dieser erwähnten Scrollfunktion ab. Da muss das rein. Nach dem Motto, erst Variable toggeln, wenn fertig gescrollt.
 
Zeig' doch mal ein funktionsfähiges Minimalbeispiel und keinen Codefetzen. Dann können wir dir eventuell mit konkreten Hinweisen dienen.
 
ok kein problem

Code:
	var menu_activated = 0;
	var menu_inprogress = 0;
		
	$('#tile1-2').click(function() {
		if(menu_inprogress === 0){
			menu_inprogress = 1;
				if(menu_activated === 0 ) {
					/*change width of ar_main*/
					$('.ar_main').animate({
					width: "-=15.2em"
					}, 200);
					/*menutiles flying on screen*/
					flying_menutiles_appear(0);
					/*toggle menu var*/
					menu_activated = 1;
				}
				else {
					
					/*menutiles flying of screen*/
					flying_menutiles_appear(1);
					/*change width of ar_main*/
					setTimeout( function() {
						$('.ar_main').animate({
						width: "+=15.2em"
						}, 200);		
					}, 1250);
					/*toggle menu var*/
					menu_activated = 0;
					
				}
			menu_inprogress = 0;
		}
	});
		
};

Die Funktion flyin_menutiles_appear verändert mit kleinem delay noch ein paar weitere Elemente in einer Schleife, der Code deckt sonst alles wichtige ab
 
Was macht denn die Funktion flying_menbutiles_appear genau?

- - - Aktualisiert - - -

Da musst du wahrscheinlich den Callback auch beachten.
 
Ok verstehe, noch eine allgemeine Frage dazu:

Die Tatsache, dass die Animation mehrfach ausgeführt wird stört mich eigentlich weniger, bei zu schnellem klicken kommt es aber zu Bugs (Feld wird dann insgesamt 30.22em größer).
Wie sauber ist der Stil denn noch, wenn ich statt relativer Werte ("-15.11em") einfach einen absoluten Wert angebe, den das Feld annehmen soll?
Den Bug würde das ausmerzen, bin mir aber nicht sicher ob man das allgemein so machen sollte..
 
Ok habe jetzt mit Hilfe von eigentlich allen Hinweisen was ganz nettes hinbekommen. Falls interesse besteht schicke ich sobald verfügbar einen Link.
danke&lg
 
Zurück
Oben