Ada*_*dam 8 javascript element onchange
我想知道,如果可能,如果元素已更改或其属性,如何检入javascript?
我的意思是像window.onhashchange元素之类的东西:
document.getElementById("element").onElementChange = function();
Run Code Online (Sandbox Code Playgroud)
我知道onchange是这样的,但是如果我想以这种方式知道它会起作用:
var element = {};
element.attribute = result;
element.attribute.onchange = function();
Run Code Online (Sandbox Code Playgroud)
据我所知你想要onChange javascript对象属性.答案是否定的,据我所知,它并不存在.
但你可以像这样制作一个setter函数(作为概念证明):
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!');
Run Code Online (Sandbox Code Playgroud)
现在你得到一个警告框,里面有'从undefined改为Hello World!'.而(element.something === 'Hello World!')将返回true.
如果你现在打电话:
element.setProperty('something', 'Goodbye world!');
Run Code Online (Sandbox Code Playgroud)
你会得到一个警告框,其中包含'Hello World!再见世界!'
当然setProperty,如果要捕获此事件,则必须通过所有代码中的方法设置属性!
编辑:
在将来的某个时间,您可以使用Object.observe().
编辑2:
现在还有代理.
您可能会考虑突变观察者。
为此,您首先创建一个回调(当 dom 元素更改时触发)
将其分配给观察者var observer = new MutationObserver(callback);
然后告诉观察者看什么observer.observe('<div></div>', observerOptions);
来自: Mozilla 突变观察者页面
| 归档时间: |
|
| 查看次数: |
14187 次 |
| 最近记录: |