8 Stimmen

jQuery & Objects, Versuch, ein leichtes Widget zu erstellen

Versuchen Sie, eine generische Auswahl "Kontrolle", die ich dynamisch Elemente hinzufügen können, aber ich habe Schwierigkeiten, Funktionen richtig zu arbeiten.

Damit habe ich angefangen.

$select = $("<select></select>");
$select.addOption = function(value,text){
  $(this).append($("<option></option>").val(value).text(text));
};

Dies funktionierte gut allein, aber immer wenn $select es .clone(true) Die addOption() Funktion verloren geht.

Dies ist mein Objektansatz, aber die Funktion funktioniert trotzdem 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 hier auf dem Holzweg?

7voto

Łukasz Punkte 32723

Um eine neue Methode zu jQuery hinzuzufügen, müssen Sie jQuery.fn.methodName Attribut, also in diesem Fall ist es:

jQuery.fn.addOption = function (value, text) {
    jQuery(this).append(jQuery('<option></option>').val(value).text(text));
};

Aber bedenken Sie, dass diese addOption wird vom Ergebnis eines beliebigen $() anrufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X