Klicken Sie auf und Ändern Sie nicht die Arbeit für jquery-select2-Optionen
Ich bin mit jquery-select2-Bibliothek zu implementieren, die meine dropdowns.
In meinem Fall, ich möchte in der Lage sein, um eine Aktion auszulösen, nachdem ein Benutzer klickt auf die option in der dropdown-Liste. Jedoch das click-oder change-Ereignis scheint nicht zu funktionieren
haml-Datei:
%select.medium.name_selector.pull_left
%option.placeholder{value:"placeholder", disabled: "disabled", selected: "selected"} Start or find a conversation with a muser
%option{value: "nick"} nick
%option{value: "sam"} sam
%option{value: "john} john
coffeescript-Datei:
events:
"click option" : "displayChatScreen"
displayChatScreen: (e) ->
e.preventDefault()
nickname = @$("select.name_selector option:selected").val()
if nickname != "placeholder"
Backbone.history.navigate "messages/#{nickname}",
trigger: true
else
alert "You need to select a friend to chat"
Ist es sowieso, das die Aktion auslöst, sobald ich die Möglichkeit meine select2 dropdown-box?
Hinweis: ich habe beide ausprobiert Ereignissen click und ändern, und Sie beide funktionieren nicht
InformationsquelleAutor Zhen | 2012-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit select2 Sie nicht verwenden können, den normalen
change
Fall wie für eine normale<select>
widget, aber Sie wirklich brauchen, zu befestigen IhredisplayChatScreen
Methode, um dieändern -
- handler zur Verfügung gestellt von select2.z.B.
Unter der Annahme, dass die Auswahl für Ihre select2-widget und Sie ausführen, dass in den entsprechenden Kontext.
Wenn Sie die Standard -
events
- hash Rückgrat, du bist wirklich zu tun:Seit select2 tatsächlich ersetzt die
<select>
(und daher<option>
tags mit einem<ul>
<li>
- pair-Mädchen) Sie werden nie tatsächlich erhalten die browser-Veranstaltung.Darüber hinaus die
change
event feuert auf die übergeordneten<select>
nicht die<option>
element.InformationsquelleAutor tkone
Können Sie vermeiden das Problem alle zusammen nicht die rendering-Optionen und stattdessen die übergabe als option zu den select2 beim initialisieren.
Können Sie einen input-tag wie diesem:
Dann initialisieren select2 mit den Optionen wie diese:
$('input[name="Name"]').select2(options);
Dadurch können Sie sicher zu hören, um die änderungen an der Eingabe nur als würden Sie sich regelmäßig über die Ereignisse hash.
InformationsquelleAutor Pbrain19