6 Stimmen

Versuch, Klick-Ereignisse auf <select>-Elementen zu verstehen

Wenn ein Klick-Ereignishandler für eine select Element, finde ich ein sehr uneinheitliches Verhalten in verschiedenen Browsern. Ich richte eine jsfiddle-Demo . Ich sehe das so:

  • Firefox 12 unter OS X (10.7 Lion): Ereignis wird ausgelöst, wenn das Element angeklickt wird. Das Dropdown öffnet sich kurz, bleibt aber nicht geöffnet. Tastaturaktionen erzeugen keine Klickaktionen.
  • Firefox 12 unter Linux (Ubuntu Lucid): gleich
  • Chome 19 unter OS X: Keine Maus- oder Tastaturinteraktion löst das Klick-Ereignis aus.
  • Chrome 19 unter Linux: Der erste Mausklick erweitert die Optionen, ein weiterer Klick auf die noch vorhandene Auswahl oder die Optionen löst ein Klick-Ereignis aus.
  • Safari 5.1.6 unter OS X: Ähnlich wie Chrome unter Linux, erster Klick erweitert Optionen, weiterer Klick auf Optionen löst Klick-Ereignis aus (im Gegensatz zu Chrome blendet Safari das Auswahlelement aus, wenn Optionen angezeigt werden).
  • Android-Browser (auf Ice Cream Sandwich): Der erste Klick löst ein Ereignis aus. Die Optionen bleiben nach dem Ereignis sichtbar und können angeklickt werden. Das Anklicken der Optionen löst kein weiteres Ereignis aus.
  • Chrome Beta für Android (Ice Cream Sandwich): Gleich wie Android Browser.

Ich würde mich freuen, wenn mir das jemand sagen oder mich auf die Norm hinweisen könnte, aber ich schätze, dass es nicht so nützlich ist, da ich direkt beobachtet habe, dass niemand sie befolgt. Ich habe den Verdacht, dass dies eine ungewöhnliche Vorgehensweise ist und dass es vielleicht üblicher ist, stattdessen auf das Änderungsereignis zu warten. Stimmt das? Was ist mit dem Abhören von Klicks auf die Optionen? Ich war nicht in der Lage zu bekommen, dass zu arbeiten, aber es könnte ein dummer Fehler gewesen sein.

(Um ein wenig mehr Kontext zu geben, ersetze ich ein Select-Element, das auf Google Closure's goog.ui.Select denn diese Komponente imitiert sehr schön einige Desktop select Renderings, vor allem von Chrome, aber nicht die bildschirmfüllende Darstellung der erweiterten Optionen, die Sie auf einem mobilen Browser sehen. Und die Anwendung hörte zuvor auf die Komponente goog.ui.Component.EventType.ACTION Ereignis, für das es nirgendwo ein eindeutiges Analogon gibt, so dass ich einfach versuche, einen konsistenten Ersatz zu finden).

0voto

leanne Punkte 6886

Hier ist der HTML Living Standard, zuletzt aktualisiert am 12. Juli 2013 (Zugriff am 14. Juli 2013). Dieser Link führt Sie direkt zum SELECT-Element. In anderen Bereichen heißt es, dass jedes HTMLElement in der Lage sein sollte, ein onclick-Ereignis zu verarbeiten, und es werden Beispiele für das Hinzufügen von Zuhörern mit Javascript gegeben. Die eigentliche Frage ist natürlich, welche Browser die angegebenen Standards zuverlässig unterstützen...

HTML-Standard

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X