我有一个改变输入隐藏标签值的函数。我已经注册了一个监听此输入的监听器(“更改”事件)。但由于输入的值正在以编程方式(而不是通过用户干预)进行更改,因此永远不会执行处理程序。但是我希望只要输入的值发生变化就会执行处理程序。有没有解决这个问题的工作?
答案 0 :(得分:1)
你在寻找什么,是Mutation Event。但是,浏览器对它的支持非常缺乏,我现在甚至都找不到支持矩阵。如果你使用jQuery 专门,你可以尝试一些插件,比如this one,但是,它只会在你调用$ .attr函数时才能工作。
另一种选择是在jQuery中使用custom events,但这比在修改值时直接调用处理程序容易一点。
希望这有帮助。
答案 1 :(得分:0)
element.onchange();
答案 2 :(得分:0)
您只需执行以下操作即可在JavaScript中调用change事件:
document.getElementById('id').onchange()
如果您使用的是jQuery,那就是$(element).change()
答案 3 :(得分:0)
没有一致的跨浏览器方式来监控属性更改。 maksymko是正确的,你正在寻找的是突变事件,但正如他所说,他们没有得到广泛的支持。
您最接近的保证是设置代码使用的API /方法,以便对输入值进行任何更改。这是不完整的,未来也很脆弱,但这就是你所拥有的一切。
许多库都有适当的管道,例如jQuery或YUI 3.