JQuery Fügen Sie einem Radio-Eingabetext ein Klick-Ereignis hinzu

8

Ich hätte gerne das mit einem Radiobutton verbundene Label "hot". Ich fing an, dies mit der .siblings () Methode zu implementieren. Ich denke, es muss einen besseren Weg geben. Das Klickereignis auf dem Optionsfeld sieht folgendermaßen aus:

%Vor%

Das funktioniert großartig. Ich möchte, dass derselbe Code ausgeführt wird, wenn der Benutzer auf das Textlabel klickt, das dem Optionsfeld beiliegt. Das HTML sieht ungefähr so ​​aus:

%Vor%

Das ist vereinfacht, aber es ist nah dran. Ich möchte das click -Ereignis auf dem Element mit class="answerttextwrapper", also $ (". Answerwrapper") erfassen. Klicken Sie auf

Also muss ich irgendwie auf die Eingabe verweisen, wenn der Text angeklickt wird. Sinn machen?

Irgendwelche Ideen?

    
Nick 21.07.2009, 19:23
quelle

3 Antworten

30

Einfach, verwenden Sie tatsächliche Beschriftungselemente ;

Wenn Sie diese verwenden, erhalten Sie nicht nur eine gute Benutzerfreundlichkeit, sondern ihr Klickereignis ist an das Klickereignis der Optionsschaltfläche gebunden. In anderen Worten, Sie müssen keine zusätzliche jQuery machen, aktualisieren Sie einfach Ihren HTML-Code.

Hier ist es in Aktion - wenn Sie einen Firebug haben, können Sie klar sehen, dass sich $ (this) immer auf <input> bezieht, unabhängig davon, ob Sie tatsächlich auf das entsprechende <label>

klicken oder nicht %Vor%     
Peter Bailey 21.07.2009, 19:39
quelle
5

Sie können sich eine Art Traversierungstechnik ausdenken, die Ihren Anforderungen entspricht, aber ich empfehle Ihnen, <label> element statt: es ist nicht nur die semantisch korrekte Art, dies zu tun, Sie können dann das Attribut for hinzufügen, um es auf das Eingabefeld zurückzusetzen, es ist eine Bezeichnung von:

%Vor%

Und dann kann dein Javascript so aussehen:

%Vor%

Beachten Sie, dass es viel besser ist, den Tag-Namen vorzuziehen, wenn Sie Klassenselektoren in Javascript ausführen (siehe Kommentare für mehr). Ich habe auch den leeren Link entfernt, weil es auch eine schlechte Übung ist. Sie sollten nur die Cursor-Deklaration in Ihrem CSS hinzufügen, wenn Sie möchten, dass die Hand angezeigt wird.

    
Paolo Bergantino 21.07.2009 19:29
quelle
2
%Vor%

Das funktioniert am besten für mich. Auf diese Weise müssen Sie die Eingabe nicht einmal über die Eigenschaft für im Element label mit dem Label verbinden.

    
Maxim Sloyko 22.07.2009 12:41
quelle

Tags und Links