Soweit ich verstehe Sie OnChange on Javascript Objekt Eigenschaften ändern möchten. Die Antwort ist nein, es existiert nicht soweit ich weiß.
Aber Sie können eine Set-Funktion wie diese machen (als Proof of Concept): ‚etwas von undefined zu Hallo Welt verändert‘
var element = {};
element.setProperty = function(property, value) {
if (typeof(element.onChange) === 'function') {
element.onChange(property, element[property], value);
}
element[property] = value;
};
element.onChange = function(property, oldValue, newValue) {
alert(property + ' changed from ' + oldValue + ' to ' + newValue);
};
element.setProperty('something', 'Hello world!');
jetzt erhalten Sie eine Warnung mit. Und (element.something === 'Hello World!')
wird true
zurückgeben.
wenn Sie jetzt anrufen:
element.setProperty('something', 'Goodbye world!');
Sie eine Warnung mit ‚etwas von Hallo Welt verändert bekommen! Auf Wiedersehen Welt! '.
Natürlich müssen Sie die Eigenschaft nur über die setProperty
-Methode in Ihrem gesamten Code festlegen, wenn Sie dieses Ereignis erfassen möchten!
Edit:
Zu einem bestimmten Zeitpunkt in der Zukunft, könnten Sie in der Lage sein Object.observe() zu verwenden.
Edit 2:
Jetzt gibt es auch proxies.
Könnten Sie freundlich bestätigen, ob Sie Änderung in dem Objektattribut oder Änderung des Attribute eines DOM-Elements? Dank – Philar
Duplizieren von http://stackoverflow.com/questions/4266852/how-do zu verfolgen suchen -i-play-a-sound-wenn-ein-element-ändert-wie-so-chat-tut – nyuszika7h
@ Nyuszika7H Ich glaube nicht: P das ist eine allgemeine Frage. – Adam