tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
741
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von deb_ugger
    deb_ugger deb_ugger ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Graz
    Beiträge
    100
    Hallo,

    ich habe folgendes Problem, für das ich noch keine passable Lösung gefunden habe. Ich blende mit einer Funktion ein <DIV> ein. Ich benutze hierfür jquery, um auch einen schönen fade-in effekt zu haben:

    Code :
    1
    
    $("#meindiv").fadeIn("slow");

    Jetzt möchte ich dieses Element wieder ausblenden, sobald ich irgendwo anders auf meiner Seite geklickt habe. Hier meine Versuche:

    1. onBlur: Geht anscheinend bei DIVs nicht

    2. <body onClick="hideDiv()">: Funktioniert zwar, hier wir das DIV aber auch ausgeblendet, wenn ich in "meindiv" herumklicke. Was nicht sein sollte.

    3. Ich lege hinter "meindiv" eine weitere Ebene mit 100% Breite und Höhe. Sobald ich auf dieses DIV klicke, soll "meindiv" verschwinden. Problem: Sämtliche Links auf der Seite sind nicht mehr klickbar, weil dieses DIV darüber liegt.

    Hat jemand eine bessere Idee?
    Kann ich z.B. mit einem event listener überprüfen, ob ich "meindiv" angeklickt habe? Wenn nicht, hab ich also woanders hingeklickt und blende "meindiv" aus...?

    Danke für die Hilfe!!
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    notiere dies in dem betreffenden DIV
    Code :
    1
    
    onclick="try{event.cancelBubble=true;}catch(e){try{event.stopPropagation();}catch(e){}}"
    ...das verhindert, das der Click-Event von dem DIV aus an Elternelemente hochgereicht wird.

    Deine Idee mit dem Überprüfen ginge theoretisch auch, das Problem ist aber, falls das DIV Kindelemente hat und du dort hineinklickst, wird nicht #meindiv als Verursacher geortet...du müsstest dich also bei jedem Klick durch die Dokumenstruktur aufwärts wühlen und schauen, ob #meindiv gefunden wird, was wenig performant ist.
    Geändert von Sven Mintel (20.01.09 um 01:16 Uhr)
     

  3. #3
    Avatar von deb_ugger
    deb_ugger deb_ugger ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Graz
    Beiträge
    100
    Super! Danke

    Hab jetzt folgendes gemacht. Bei jedem Body-click wird überprüft, ob "meindiv" eingeblendet ist. Wenn ja, solls ausgeblendet werden.
    Code :
    1
    2
    3
    4
    5
    
    $("body").click(function(e){  
                if(document.getElementById('meindiv').style.display == 'block') {
                    $("#meindiv").fadeOut("slow"); 
                }
            });

    Mit deinem Code innerhalb von "meindiv" wird dies beim Klick auf das Element selbst verhindert.

    Danke!!
     

Ähnliche Themen

  1. Gibt es ne Methode in JSP wie onblur() in JS?
    Von messmar im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 18.11.08, 16:24
  2. onFocus und onBlur
    Von Sasser im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 22.03.08, 15:16
  3. PHP-Variable in JS - OnBlur
    Von Phila-Boi im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 19.02.08, 12:11
  4. selfclose() und onblur()
    Von mrepox im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 24.01.08, 15:13
  5. lostfocus (onblur) mit php kombinieren?
    Von Brauni im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 15.05.06, 14:52

Stichworte