IF-Problem

Hallo ihr Alle,

ich hab grad ein Problem. Ich habe eine Grafik, welche ab einem bestimmten Zeitpunkt mit einer Rolloverfunktion ausgestattet werden soll. Dieser Zeitpunkt soll über eine Variable bestimmt werden. Ist diese 0 soll das Rollover noch nicht in Kraft treten, erst wenn die Variable 1 wird.

Das mit dem Rollover klappt, aber leider nicht der Rest. Ich lasse zum gewünschten Zeitraum (bzw wenn der User einen bestimmten HP-Bereich betritt) die Variable auf 1 setzen. Aber irgendwie klappts nicht, es passiert nichts. Es muss also an der If liegen.

Code:
$(document).ready(function() {
				
			if (var_navi_home_active =='1') {	
	
			$("#header_button_home").bind('mouseover mouseout', function(event){
				if(event.type == 'mouseover'){
					$(this).attr("src", "IMG/header/home_inaktiv.gif");
				}else{
					$(this).attr("src", "IMG/header/home_deaktiviert.gif");	} });	
			}else{}
			;
			
			   	
			});

Zum Code gehört noch ein bisschen mehr, aber das ist das einzige, was relevant ist. Variablen werden anfangs definiert und auch geändert. ich frage regelmäßig die Variablen über Alerts ab, die ändern sich wie gewünscht.

Wäre fein, wenn mir jemand meinen Fehler aufzeigen würde.
Ich wünsche euch ein schönes Wochenende,

der Kire
 
Dieser Zeitpunkt soll über eine Variable bestimmt werden. Ist diese 0 soll das Rollover noch nicht in Kraft treten, erst wenn die Variable 1 wird.
Die If-Abfrage wird aber nur ein einziges mal ausgeführt, nämlich wenn die Seite fertig geladen ist. ($(document).ready())

Das mit dem Rollover klappt, aber leider nicht der Rest. Ich lasse zum gewünschten Zeitraum (bzw wenn der User einen bestimmten HP-Bereich betritt) die Variable auf 1 setzen
Und wieso setzt du da eine Variable auf 1 anstatt zu diesem Zeitpunkt einfach dein Event zu binden?
 
So, ich hab jetzt einen Schritt nach vorn gemacht.

So funktionierts schon mal:

Code:
("#header_button_home").bind('mouseover mouseout', function(event){
				
				if (var_navi_home_active =='1') {	
						if(event.type == 'mouseover'){
					$(this).attr("src", "IMG/header/home_inaktiv.gif");
					}else{
					$(this).attr("src", "IMG/header/home_deaktiviert.gif");	}}else{} });

Das ganze steht nun in der Document.Ready und nun möchte ich, aus Platz- und Lesbarkeitsgründen das in eine Funktion auslagern, die vor Document.Ready steht und innerhalb des Document.Ready nur aufgerufen wird. Soch nun ergaben sich folgende Probleme. Erstens klappten die "(this)." nicht mehr, was ich aber durch direkte Benennung der Klassen des entsprechenden Objekts geregelt hatte. Viel problematischer ist die Sache, dass das IF mit "event.type = 'mousover'" nicht mehr läuft. Ich schätze mal, dass das Eventtype nicht richtig "übergeben"/"abgerufen" oder was auch immer wird. Wie kann ich das hinbekommen? Derzeitig arbeite ich mit 2 Aufrufen, einen für Mousein und einen für Mousout. Das sieht derzeitig so aus:

Code:
function button_home_mouse_in(){
					if (var_navi_home_active =='1') {
					$("#header_button_home").attr("src", "IMG/header/home_inaktiv.gif");
					};	
					};
					
function button_home_mouse_out(){
					if (var_navi_home_active =='1') {
					$("#header_button_home").attr("src", "IMG/header/home_deaktiviert.gif");
					};	
					};
					
			
$(document).ready(function() {					
										
$("#header_button_home").bind('mouseover', function(){button_home_mouse_in(); });
$("#header_button_home").bind('mouseout', function(){button_home_mouse_out(); });
});

Das funktioniert, sieht aber blöd aus. Ich hätte das gern in einer Funktion, wie im ersten Beispiel. Kann da Jemand einen Tip geben?
 

Neue Beiträge

Zurück