我需要在某些属性的更改上编写函数,但是当我编写以下内容时
$("#handle_valueAA").attr("aria-valuenow").change(function(u)
{
...
})
它不起作用。 是什么原因?
由于
答案 0 :(得分:3)
原因很简单。仅对表单元素支持change事件 - 它不适用于属性。如果要捕获属性修改,则需要查看DOM突变事件DOMAttrModified
和IE专有事件onpropertychange
。
答案 1 :(得分:1)
当用户更改表单控件的值时,将触发change
事件。
它不是可以与属性关联的通用事件,因此当JS更改该属性时它将触发。没有任何东西(至少没有看到广泛的支持)可以做到这一点。
您需要修改任何更改属性的函数,或使用setInterval
轮询查找更改的属性。
答案 2 :(得分:1)
(通过其他Javascript代码,可能)对属性值的更改不会触发“更改”事件。
如果您可以控制更改该属性的代码,那么您可以让它触发自定义事件(“aria-changed”或其他),然后绑定处理程序:
$('handle_valueAA').bind('aria-changed', function() { ... });
编辑 - 或查看Andy E的回答