Wallpappe: Bitte kein Doppelklick

Mein Plan: Mit dem Doppeklick Event das Absenden verhindern. Letzteres ist an das Click Event gebunden. Meine Funktion am Doppelklickevent kommt mit false zurück aber leider wird meine Funktion am Clickevent dennoch aufgerufen. Wie kann ich das verhindern?

  1. Hallo Wallpappe,

    ja, isso. Die click-Events feuern und werden zum Doppelklick-Event aggregiert.

    Lösung: Das detail-Property des Event-Objekts. Es wird bei jedem click um 1 erhöht, bis die Doppelklick-Zeit vorbei ist. Danach beginnt es wieder bei 0. Damit kann man sogar UIs bauen, die einen Zehnfachklick erwarten.

    Leider noch nicht in unserem Wiki dokumentiert.

    button.addEventListener("click", function(event) {
    
       if (event.detail > 1) return;
    
    });
    

    Funktioniert sogar im IE, ab Version 9.

    Ich vermute, dass man damit auch einen Doppelklick auf den submit-Button abfangen kann, allerdings nicht im submit-Event. Gemäß Doku bleibt detail dort 0.

    Rolf

    --
    sumpsi - posui - clusi
    1. Danke, geht!

  2. Dass man [wahrscheinlich ein Formular] auch dadurch NICHT abschicken kann indem man einfach gar nicht auf Absenden klickt, ist sicher jedem klar 😀
    Was steckt denn dahinter?

    1. Hallo encoder,

      hast Du keine Kunden, die frei von Technikverständnis sind und denen Du einfach nicht begreiflich machen kannst, dass ein Einfach- oder Doppelklick je nach Kontext eine unterschiedliche Semantik hat? Die nicht mal im Stande sind, den Kontext (Web, Desktop-GUI) korrekt zu erkennen, in dem sie unterwegs sind?

      Ich schon. Ich habe in diversen Anwendungen (Web, WinForms) Doppelklick-Bekämpfung einbauen müssen.

      Rolf

      --
      sumpsi - posui - clusi
      1. hast Du keine Kunden, die frei von Technikverständnis sind

        wer hat die nicht 😀

        Die Frage klang auf den ersten Blick nach "was macht jemand der ein Formular zwar ausgefüllt hat, es aber nicht abschicken will".
        Ich sollte schwere Lektüre am Morgen vermeiden.