Rolf B: CSS figure / Alle Checkboxen auf einmal klicken?

Beitrag lesen

Hallo Christian,

ich bin mit Touch-Events nicht vertraut und kann nicht sagen, wie man sowas wie ein "Long Touch" erkennt. Nach dem, was ich so lese, soll man touchstart und touchend implementieren. Im touchstart startet man einen Timer und in touchend stoppt man ihn. Schafft es der Timer, zum Ende zu kommen ohne von touchend gestoppt worden zu sein, löst er die longtouch-Operation aus.

Einen Doppelklick erkennt man durch die detail-Eigenschaft des mousedown Events, es gibt auch ein dblclick-Event, das das wegabstrahiert.

Einen dblclick Event solltest man auch bei einem Doppel-Tap auf einem Touch-Gerät erhalten.

Wie auch immer - wenn man unterschiedliche Auslöser für ein bestimmtes Verhalten hat, das Verhalten an sich aber gleich ist, dann trennt man die Implementierung von Eventhandling und Verhalten auf:

Funktion 1: Eventhandler für Auslöser 1 - ruft Funktion 3 auf

Funktion 2: Eventhandler für Auslöser 2 - ruft Funktion 3 auf

Funktion 3: Durchführen des gewünschten Verhaltens

Funktion 1 und 2 sind dann zumeist nur Einzeiler, die nicht mehr zu tun haben, als die Funktion 3 mit den richtigen Parametern aufzurufen. Im besten Fall kann man Funktion 3 gleich als Handler für beide Events verwenden.

Einen "Alles auswählen" Button (nicht Link!) oder eine "Alles" Checkbox solltest Du aber dennoch haben. Per Tastatur bekommst Du zwar ein click-Event, aber der detail-Zähler geht nicht hoch. Ein dblclick-Event bekommst Du auch nicht. Für Keyboard-Fans könntest Du aber einen Button defininieren mit accesskey="a" - allerdings sind die Browser eigen darin, ob man einen Accesskey mit Alt oder Shift+Alt auslöst und wenn der Browser Alt+A selbst als Shortcut hat, kannst Du lange Accesskeys definieren.

Strg+A ist eigentlich der vertraute Shortcut für "Alles selektieren", den implementierst Du so:

document.body.addEventListener("keydown", function(keyEvent) {
   if (keyEvent.ctrlKey && ke.key == "a") {
      selectAll();
      keyEvent.preventDefault();
   }
});

Bei Spracheingabe ist es aber vorbei. Fancy Features sind schön und gut, aber die Seite muss bedienbar bleiben. Dafür muss ein Button existieren. Oder eine schlaue Spracheingabe, die "Alles selektieren" erkennt und dem Browser Strg+A vorgaukelt.

Rolf

--
sumpsi - posui - obstruxi