Javascript + wert bei onmouseover übergeben

iloveratte

Mitglied
Hallo

Ich habe hier ein Code, bei dem eine bildvorschau läd, dies alle sekunde, bild 1 - 3, eine art Videovorschau.

bei onmouseover wird die Videoquelle mitgegeben, sobald nach der ersten sekunde auf das bild 2 umgeschaltet wird, ist die uberegebene Variable "undefiniert", obwohl der mauszeiger noch über dem bild ist. kann mir da jemand weiterhelfen?


PHP:
<script language=\"JavaScript\">

var wechselzeit = 1000;
var counter = 1;

function bildwechsel(vorschaubild)
	{
	if (counter <= 3)
		{
		document.getElementById(vorschaubild).src = 'http://www.xyz.ch/neu/' + vorschaubild + '_' + counter + '.gif';
		setTimeout (\"bildwechsel(vorschaubild)\",wechselzeit);
		}
		else
		{
		counter = 1;
		bildwechsel(vorschaubild);
		}
	counter = counter+1;
	}
</script>";

echo "<img src=\"http://www.xyz.ch/neu/AghJke_1.gif\" name=\"AghJke\" onmouseover=\"bildwechsel('AghJke')\" border=\"0\">";


Danke für die Hilfe
 
Zuletzt bearbeitet:
Ich gebe zu ich wußte es auch nicht aber ich habe nach der Lösung gesucht:

Ändere mal diese Zeile:

Code:
setTimeout (\"bildwechsel(vorschaubild)\",wechselzeit);

so ab:

Code:
setTimeout (function(){bildwechsel(vorschaubild);},wechselzeit);
 
Hallo, wow, genau jetzt funktioniert es, suppi!

allerdings habe ich gerade gemerkt, das wenn ich den Mauszeiger wegnehme, das ganze weiterläuft, wie kann ich die Funktion Stoppen? z.B. bei einem "onmouseout"?

Alternativ mit "clearTimeout" hat jemand erfahrung gemacht?

mercy
 
Zuletzt bearbeitet:
Erstelle dir eine zusätzliche Funktion die beim MouseOut aufgerufen wird und in dieser gibst du dann die clearTimeout-Anweisung an.

Du musst allerdings beim Starten den Prozess an globale eine Variable übergeben und diesen Variablennamen musst du bei ClearTimeout mit angeben.
 
PHP:
<script language="JavaScript">

var counter = 1;

function bildwechsel(play_stopp,vorschaubild)
	{
	if (play_stopp == 'PLAY')
		{
		if (counter <= 3)
			{
			document.getElementById('AghJke').src = 'http://www.xyz.ch/neu/' + vorschaubild + '_' + counter + '.gif';
			setTimeout (function(){bildwechsel(play_stopp,vorschaubild);},2000); 
			}
			else
			{
			counter = 1;
			bildwechsel(play_stopp,vorschaubild);
			}
		counter = counter+1;
		}
	
	if (play_stopp == 'STOPP')
		{
		document.getElementById('AghJke').src = 'http://www.xyz.ch/neu/' + vorschaubild + '_1.gif';
		clearTimeout (function(){bildwechsel(play_stopp,vorschaubild);},2000); 
		}
	}
</script>

<img src="http://www.xyz.ch/neu/AghJke_1.gif\" name="AghJke" onmouseover="bildwechsel('PLAY','AghJke')" onmouseout="bildwechsel('STOPP','AghJke')" border="0">


also so das ich innerhalb der Funktion eine qart "start" "Stopp" habe. jedoch funktioniert dies nicht. weiss jemand rat?
 
Nein eine zusätzliche Funktion zum Stoppen.

HTML:
<script language="JavaScript\">

var wechselzeit = 1000;
var counter = 1;
var bw;

function bildwechsel(vorschaubild) { 
    if (counter <= 3) 
        { 
        document.getElementById(vorschaubild).src = 'http://www.xyz.ch/neu/' + vorschaubild + '_' + counter + '.gif'; 
        bw = setTimeout (function(){bildwechsel(vorschaubild);},wechselzeit);
        } 
        else 
        { 
        counter = 1; 
        bildwechsel(vorschaubild); 
        } 
    counter = counter+1; 
} 
function stopp() {
   clearTimeout(bw);
}
</script>"; 

echo "<img src=\"http://www.xyz.ch/neu/AghJke_1.gif\" name=\"AghJke\" onmouseover=\"bildwechsel('AghJke')\" onmouseout=\"stopp();\" border=\"0\">";

Ist nicht getestet, sollte aber so klappen.
 

Neue Beiträge

Zurück