tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
466
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Templorials Templorials ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Ort
    Österreich
    Beiträge
    169
    Hallo,

    habe eine Problem mit Google Chrome der sich bei ondblclick komisch verhält:
    Es muss nämlich nur der zweite Klick (des Doppelklicks) auf das eigentliche Elemente
    getätigt werden. Das heißt wenn ich zuerst daneben klicke und dann schnell einen zweiten
    Klick auf das Element mache wird das als Doppelklick auf das Element interpretiert.
    Aber eben nur im Chrome bzw Chromium Browser.

    Ist das bekannt? Bzw. gibs da ein Workaround dafür? Habe noch nichts dazu gefunden.

    Schöne Grüße,
    Michael
     

  2. #2
    FipsTheThief FipsTheThief ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    589
    Mhm also ich würde das so lösen wie unten beschrieben , der IE 8 scheint mit dem Event so gut klar zu kommen nur nach einen normalen Klick scheint der mir irgendwie hinterher zu hängen. Also das die Variablen nicht so schnell gespeichert werden wie geplant aus Gründen die ich nun noch nicht nachvollziehen konnte. Aber mit dem normalen dblclick Event kommt ja der IE problemlos klar, da müssen wir es uns nu nicht schwerer als nötig machen.

    Im FF und Opera habe ich beides nun ausgetestet und es klappt soweit gut sollte auch im Safari oder Chrome klappen beide habe ich nun nicht zur Hand.

    Da gibs nun 3 Möglichkeiten :

    a) innerhalb der Zeitspanne von 250ms auf das selbe Element geklickt dann dblclick feuern und timer stoppen.

    b) ein anderes Element wurde innerhalb der Zeitspanne geclickt, in dem Falle den Timer resetten und neu starten

    oder c) die Zeit ist einfach abgelaufen also reset.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html
     
      <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
            
        .box:first-child {
            background:#f00;
        }
     
        .box {
            height:100px;
            width:100px;
            background:#0f0;
            float:left;
        }
      </style>
        <script type="text/javascript">
     
            var curelement = null;
            var timer = false;
     
            function checkDblClick(evt){
     
                function reset(){
                    window.clearTimeout(timer);
     
                    timer      = null;
                    curelement = null;
                }
     
                if(timer) {
                    
                    if(curelement && curelement == evt.target) {
                        reset();
                        dblclickFired(evt);
                    } else {
                        reset();
                        timer = window.setTimeout(reset,250);
                    }
                    
                } else
                    timer = window.setTimeout(reset,250);
     
                curelement = evt.target;
            };
     
            function dblclickFired(evt){
                var e = evt || window.event;
                alert("Dblclick fired");
            };
     
            window.onload = function(){
     
                if(document.addEventListener) {
                    document.getElementById('b1').addEventListener("click", checkDblClick, false);
                    document.getElementById('b2').addEventListener("click", checkDblClick, false);
                } else {
                    document.getElementById('b1').attachEvent("ondblclick", dblclickFired);
                    document.getElementById('b2').attachEvent("ondblclick", dblclickFired);
                }
            }
     
        </script>
      </head>
      <body>
     
          <div class="box" id="b1"></div>
          <div class="box" id="b2"></div>
     
      </body>
    </html>
    Geändert von FipsTheThief (18.03.10 um 13:19 Uhr)
     

Ähnliche Themen

  1. Eigene tutorials.de-Extension für Google Chrome
    Von ComFreek im Forum Coders Talk
    Antworten: 1
    Letzter Beitrag: 02.01.11, 19:48
  2. Text Markieren und Kopieren Google Chrome
    Von peper im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 27.10.10, 22:26
  3. Google Chrome wiederholt Listenpunkt automatisch
    Von Eagle-PsyX- im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 14.06.10, 14:00
  4. Google Chrome - Weißer Balken
    Von queicherius im Forum CSS
    Antworten: 9
    Letzter Beitrag: 10.12.09, 18:42
  5. Google-Chrome und V8
    Von OnlyFoo im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 09.09.08, 23:39