2009-07-27 18 views
5

Ich habe vor kurzem eine Frage gestellt und einen Code gepostet, zu dem ein Vorschlag bestand, meine Click-Handler auf eine Auswahlbox zu ändern.JQuery Click versus Change

Meine Frage ist jetzt: sollte ich immer den Change-Handler verwenden - oder gibt es Situationen, in denen Click immer noch geeignet wäre (angenommen, ich möchte Cross-Browser-Kompatibilität).

EDIT: Hier ist, was ich sammle: Für Dinge wie ausgewählte Boxen, ändern ist der Weg zu gehen. Für einfache Dinge, wie Bilder, gibt es keine Änderung, also klicken ist der Weg zu gehen.

Antwort

1

Klicken funktioniert nicht x-broswers, IE reagiert nicht auf einen Select- oder Optionsklick. Änderung ist die einzige verfügbare Option.

+0

Danke, das ist alles was ich brauchte. – Dirk

+3

Das ist falsch. IE löst das Änderungsereignis nicht wie erwartet aus. Die meisten Browser zünden das Änderungsereignis in dem Moment, in dem sich der Wert eines Elements geändert hat. IE löst das Änderungsereignis jedoch nur dann und nur dann aus, wenn sich der Wert geändert hat, nachdem das Element den Fokus verloren hat. Daher ist es für Cross-Browser-Codierung besser, Klick für Dropdown-Listen und Tastatur für Textfelder für wirklich reagierende Anwendungen zu verwenden. Andernfalls müssen Ihre Benutzer auf das Element klicken oder es ablegen, damit Ihre Ereignisbehandlung im besten bekannten Browser ausgeführt wird. – illvm

+0

@illvm - genau das habe ich versucht zu schreiben; Ich musste mich vor einiger Zeit damit befassen. – montrealist

5

Wenn es um Formularsteuerelemente wie Texteingaben, Auswahlfelder, Prüf- und Radiobuttons geht, sollten Sie das onChange-Ereignis verwenden. Wenn es um andere Dinge geht, wie Links, Listen, Container usw., dann sollten Sie definitiv click verwenden, da diese Elemente das onChange-Event nicht unterstützen.