请注意,Object.Watch
和 Object.Observe
现在都不推荐使用(截至2018年6月)。
我一直在寻找一种简单的方法来监视对象或变量的变化,我发现了 Object.watch()
,Mozilla 浏览器支持,但 IE 不支持。所以我开始四处寻找,看看是否有人写过类似的东西。
我唯一找到的就是 一个 jQuery 插件但我不确定这是不是最好的方法。当然,我在大多数项目中都使用 jQuery,所以我并不担心 jQuery 方面..。
无论如何,问题是: 有人能给我展示一个 jQuery 插件的工作示例吗。
或者,是否有人知道任何更好的选择,将工作跨浏览器?
回答后更新 :
谢谢大家的回复! 我试用了这里发布的代码: Http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
但我似乎不能使它与 IE 工作。下面的代码在 Firefox 中运行良好,但在 IE 中没有任何作用。在 Firefox 中,每次更改 watcher.status
时,都会调用 watcher.watch()
中的 document.write()
,您可以在页面上看到输出。在 IE 中,这种情况不会发生,但是我可以看到 watcher.status
正在更新这个值,因为最后一个 document.write()
调用显示了正确的值(在 IE 和 FF 中)。但是,如果没有调用回调函数,那么... :)就没有意义了
Am I missing something?
var options = {'status': 'no status'},
watcher = createWatcher(options);
watcher.watch("status", function(prop, oldValue, newValue) {
document.write("old: " + oldValue + ", new: " + newValue + "<br>");
return newValue;
});
watcher.status = 'asdf';
watcher.status = '1234';
document.write(watcher.status + "<br>");