Visa ett inlägg
Oläst 2010-04-24, 11:55 #6
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av Althalos Visa inlägg
Kod:
	this.find('li div').addClass(hidden).click(function() {
	
	$(this).removeClass(hidden).addClass('open');
		
	function hideit(el) {
		el.removeClass('pending').addClass(hidden);
	}
	
	if($('.open').length>1) {
	var el = $('.open');
	el.removeClass('open').addClass('pending');
	window.setTimeout(hideit(el), 2000);
	}

	});
Problemet är hideit(el) exekveras direkt. Alltså resultatet blir korrekt, men den väntar inte i två sekunder. Någon som ser vad problemet kan bero på?
hideit(el) kommer funktionen att köras eftersom du anropat funktionen med (..).
Vad du vill göra är att skicka med funktionen till setTimeout så den själv för köra funktionen. Finns två sätt:

Kod:
window.setTimeout(hideit, 2000);
Detta skickar funktionen till setTimeout, inte resultatet av funktionen. Problemet här är att du inte kan skicka med en parameter.

Kod:
window.setTimeout(function(){hideit(el),2000)});
Här skapar du en ny funktion som skickas med till setTimeout och den körs inte förrän setTimeout anropar den. Här kan du alltså skicka med parametrar.

Hoppas det hjälpte dig lite på traven
qson är inte uppkopplad   Svara med citatSvara med citat