ich habe ein „Produkt“ Objekt mit Werten wie die aufeinander abhängig:JavaScript - Aktualisierung/neu initialisieren Objekt
function Product(object) {
this.object = object;
this.data = {
id: this.object.val(),
}
}
var product = new Product($('input[name="productId"]:checked'));
Und ... es funktioniert. Ich möchte jedoch ganze Objekt auf Eingangsänderung neu zu initialisieren, wie ich sie hier einige bekam:
<input type="radio" name="productId" value="ONE" checked="checked" />
<input type="radio" name="productId" value="TWO" />
I neuen Wert manuell auf Änderungsereignis einstellen:
$(function() {
$('input[name="productId"]').change(function(e) {
e.preventDefault();
product.object = $('input[name="productId"]:checked');
});
});
Aber es wird nur ändern "object" -Wert und wirkt sich nicht auf andere Werte aus.
Ich kann natürlich jeden neuen Wert per Hand auf Change Event setzen, scheint aber nicht richtig, oder ?. Ich möchte mich nicht jedes Mal wiederholen, wenn ich das aktualisieren möchte, ich möchte dieses Objekt einfach neu generieren.
Für jetzt habe ich eine Problemumgehung mit öffentlichen Funktion in Produktobjekt und rufen Sie es dann auf Änderungsereignis.
this.updateData = function() {
this.data.id = this.object.val();
}
Aber noch einmal, es ist nur wiederholt jede Erklärung und es wird ziemlich chaotisch sein, da mehr Objekteigenschaften als nur ein ‚id‘ erscheint.
In der Tat, ich erste Lösung in erster Linie versucht, .. i put „var nur Produkt "statt" Produkt "innerhalb des Änderungsereignisses. Nun, keine Ahnung warum :-) Zweite Lösung wird auch in Zukunft nützlich sein. Vielen Dank! – ficus