setTimeout setzt nicht aus (zu kurze Zeitverzögerung)

CookieBuster

Erfahrenes Mitglied
Hallo Leute,

Ich hab mich mal wieder von PHP fern und an JavaScript rangewagt.
Nach langem Pfriemeln, hab ich endlich meine Startseite so hinbekommen, wie ich sie haben will.
Es wird immer ein Div ein und wieder ausgeblendet durch jQuery + setTimeout (Code unten)

Jetzt springt das aber mit einer Verzögerung von etwa 1 Sekunde immer hin und her, dabei habe ich das ganze auf 10 sek. eingestellt. :eek:
Ich hab den Browser geschlossen gehabt, die Seite mehrmals neu geladen und auch JavaScripit mal auf aus gestellt, neu geladen, die Seite gewechselt und wieder zurück.
Und wer hätte es gedacht, es hat nicht funktioniert.. :rolleyes:

Kann es sein, dass man bei Js den Cache anderst leeren muss?

Hier zumindest mal der entsprechende Code, der auch alles macht was er soll, ausgenommen des Timeouts.

Schonmal ein Danke an jeden, der sich die Zeit nimmt das hier zu lesen und, wenigstens kurz, darüber nachdenkt!

Javascript:
$(document).ready(function() {
	$("#div1").fadeOut("slow", function() {
	  $("#div1").html(ReturnSpruch());
	});
	$("#div1").fadeIn("slow");
	setTimeout(NoDisplayBlock(), 10000)
	
	function DisplayBlock() {
		$("#div1").fadeIn("slow");
		setTimeout(NoDisplayBlock(), 10000)
	}

	function NoDisplayBlock() {
		$("#div1").fadeOut("slow", function() {
			$("#div1").html(ReturnSpruch());
		});
		setTimeout(DisplayBlock(), 100)
	}
});
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ruf die zeitverzögerten Funktionen in den callback-Funktionen der Methoden fadeIn bzw. fadeOut auf.

Desweiteren müssen die Anweisungen im ersten Argument der Methode setTimeout in Anführungszeichen stehen.

Beispiel:
Code:
$(function(){
  DisplayBlock = function(){
    $('#div1').fadeIn('slow', function(){
      hTimer = window.setTimeout("NoDisplayBlock()", 2000);
    });
  }
  NoDisplayBlock = function(){
    $('#div1').fadeOut('slow', function(){
      hTimer = window.setTimeout("DisplayBlock()", 2000);
    });
  }

  NoDisplayBlock();
});
Ciao
Quaese
 
Moin,

Hier mal 5 Beispiele, daran erkennst du es recht gut, glaube ich :)
Code:
<script type="text/javascript">
<!--

function funktion()
{
  alert('dieser Alert sollte nach 10  Sekunden kommen');
}

function returnFNC()
{
  return function(){alert('dieser Alert sollte nach 20  Sekunden kommen')}
}


//so gehts
window.setTimeout(function(){alert('dieser Alert sollte nach 5  Sekunden kommen')}, 5000);
window.setTimeout(funktion, 10000);
window.setTimeout("alert('dieser Alert sollte nach 15  Sekunden kommen')", 15000);
window.setTimeout(returnFNC(), 20000);

//so nicht
window.setTimeout(alert('dieser Alert sollte nach 25 Sekunden kommen'), 25000);

//-->
</script>

setTimeout() erwartet als 1. Parameter eine Funktion.
Das kann entweder eine anonyme Funktion sein wie in #1, oder aber der Name einer existierenden Funktion wie in #2 oder aber ein String, der einen Funktionskörper enthält, wie in Beispiel #3 ....oder aber eine Anweisung, sofern diese eine Funktion als Rückgabewert hat wie in Beispiel #4.

Nicht sein kann es eine Anweisung, die keine Funktion zurückliefert wie in Beispiel #5
Und genau so hast du es aber dastehen.

Die Fehlerkonsole hätte dir das eigentlich melden sollen.
 
Funktioniert astrein. Vielen vielen dank an dich!

Natürlich auch an Sven für das erleuchtende Beispiel. Ich sollte die Finger von Js lassen :rolleyes:
 

Neue Beiträge

Zurück