jQuery & Objects versucht, ein leichtes Widget zu erstellen
-
09-06-2019 - |
Frage
Ich versuche, ein make generic select „Steuerelement“ zu erstellen, zu dem ich dynamisch Elemente hinzufügen kann, aber ich habe Probleme damit, dass die Funktionen richtig funktionieren.
Damit habe ich angefangen.
$select = $("<select></select>");
$select.addOption = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
Das funktionierte alleine gut, aber jederzeit $select
Ist .clone(true)
'ed die addOption()
Funktion geht verloren.
Dies ist mein Objektansatz, aber die Funktion funktioniert immer noch nicht.
function $selectX() {
return $("<select></select>");
}
$selectX.prototype.addOption() = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
Die Hack-Lösung besteht darin, die Funktion nach der Erstellung manuell hinzuzufügen:
$nameSelect= new $selectX;
$nameSelect.addOption = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
Bin ich auf dem falschen Weg?
Lösung
Um eine neue Methode zu jQuery hinzuzufügen, müssen Sie verwenden jQuery.fn.methodName
Attribut, in diesem Fall also:
jQuery.fn.addOption = function (value, text) {
jQuery(this).append(jQuery('<option></option>').val(value).text(text));
};
Aber denken Sie daran addOption
wird aus jedem Ergebnis zugänglich sein $()
Anruf.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow