tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
196
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    KireSchattenhaar KireSchattenhaar ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    20
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    $(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
     

  2. #2
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    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?
     
    In order to understand recursion, one must first understand recursion.

  3. #3
    dobermant dobermant ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Beiträge
    141
    Code :
    1
    2
    
               }else{}
                ;

    ...was ist das?
     

  4. #4
    KireSchattenhaar KireSchattenhaar ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    20
    So, ich hab jetzt einen Schritt nach vorn gemacht.

    So funktionierts schon mal:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    ("#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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    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?
     

Ähnliche Themen

  1. Wie weise ich nach: Browser Problem oder Code Problem?
    Von Steb im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 10.03.11, 20:09
  2. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  3. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  4. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29