【发布时间】:2011-10-20 12:12:03
【问题描述】:
我知道我可以使用watch 绑定一个回调,该回调将在对象属性更改时触发。这确实适用于通用对象,例如:
{'a':1, 'b':'7'}
所以,我认为我可以简单地这样做来绑定一个回调,该回调将在输入字段值更改时触发:
var inputDomElement = document.getElementById('someInputElement');
inputDomElement.watch('value',function (id, oldval, newval) {
alert(oldval);
alert(newval);
});
但这不起作用。根本不会触发。没有警报框。我已经在 Firefox 5 和 Google Chrome(最新)中尝试过。
这不是watch 的工作原理吗? watch 是否根本不适用于 DOM 元素?我认为它们只是对象 - 不是吗?
更新 1:
这里是关于 watch 是什么的 MDN 信息: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch
更新 2:
我不能使用 change 事件。因为更改仅在文本元素捕获模糊时触发。这意味着它只会在用户从该文本字段切换到另一个文本字段时触发。例如,在检查此用户名或电子邮件地址是否已被占用时,这绝不是动态的,我希望在每次不同的更改时发生这种情况。
【问题讨论】:
-
MDN 页面顶部的横幅带有黄色的“非标准”。可以解释为什么它不起作用。
-
它适用于所有现代浏览器:Firefox 3+、Google Chrome、IE 9+、SAFARI v. 4+。另外 - 我在我的问题中确实提到我已经尝试过支持浏览器。
-
请不要继续使用“仍在等待”更改来更新您的原始问题。没有接受的答案意味着您正在寻找正确的答案。你不需要继续“碰撞”你的问题。
标签: javascript jquery dom