Tatsächlich deckt der Titel nicht vollständig ab, wonach ich suche. Ich habe mein eigenes Auswahlelement erstellt. Es besteht aus einigen div, ul/li und versteckten Eingabeelementen. Es hat natürlich den Markup- und Javascript-Teil. Hier ist der html:Wie kann ich meinem benutzerdefinierten Element eine Eigenschaft hinzufügen und in der Lage sein, eine Aktion auf die Wertänderung auszulösen
<div id="ddlCars" class="ma-select" style="width:350px;">
<div class="ma-select-box"><input class="ma-select-box-filter" type="text"></div>
<div class="ma-select-options">
<ul class="ma-select-ul">
<li class="ma-select-li ma-visible-option" optvalue="7">MERCEDES</li>
<li class="ma-select-li ma-visible-option" optvalue="10">BMW</li>
<li class="ma-select-li ma-visible-option" optvalue="14">AUDI</li>
<li class="ma-select-li ma-visible-option" optvalue="3">VOLKSWAGEN</li>
</ul>
</div>
<input class="ma-select-hidden" type="hidden">
</div>
Der Javascript-Code ist nur ein Bündel von Funktionen, die Ereignisse wie klicken, schweben, keyup usw. und sind verpflichtet, zu den obigen Elementen (nach Klasse) auf bereite Methode fangen. Ich habe keinen Typ für diese benutzerdefinierte Auswahl angegeben.
Bei einem normalen DOM-select-Elemente Ich bin in der Lage, dies zu tun:
document.getElementById("mySelect").selectedIndex=0;
Jetzt würde ich das etwas ähnliches erreichen mag. Ich kann das Wrapper div nach ID oder Klassennamen finden. Aber kann ich etwas so machen?
$('#ddlCars').selectedIndex=1;
Also irgendwie, ich brauche eine Eigenschaft meine Gewohnheit hinzufügen auswählen und deren Änderung fängt den selelcted Wert auf das entsprechenden li Element einzustellen.
Vielleicht ist der jquery .change() -Methode wird ein Ereignis, wenn prop Veränderungen auslösen? – crashxxl
Sie sollten 'Object.defineProperty()' verwenden und eine Setter-Funktion erstellen, um den Eigenschaftswert festzulegen und alles, was Sie tun möchten, auszuführen. In ähnlicher Weise kann eine Getter-Funktion Ihnen helfen, Aktionen zu patchten, wenn der Wert gelesen wird. – Redu