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?
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>
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:
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.
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.
Tags und Links javascript html jquery