非输入元素的 JavaScript 事件监听器

标签 javascript jquery events dom-events

<分区>

Possible Duplicate:
Is there a jQuery DOM change listener?
How do can watch DOM Object properties?

有没有办法给非输入类型的元素绑定(bind)事件?例如,将事件绑定(bind)到 href 属性更改时触发的 anchor 元素。

最佳答案

您可以将处理程序绑定(bind)到非输入元素上的各种事件(clickmousemove 等)。但是当属性更改时(例如链接上的 href 属性的示例),不会引发(一致的跨浏览器)事件。某些属性(如 src)将导致事件(如 load)作为次要事件,如 bfavarello指出。

(关于元素的 "mutation" events 现已失效,包括属性更改 [突变],但它从未得到广泛支持。有一个 newer proposal,但它也 [尚未] 得到广泛支持。)

当然,您可以使用轮询:保存旧值,并定期检查(通过 setTimeoutsetInterval)以查看它是否已更改。除非您正在检查很多元素并且需要几乎不断地检查它们,否则这不一定是性能问题。

关于非输入元素的 JavaScript 事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805753/

相关文章:

c# - 我应该使用 EventHandler<T> 和/或 EventArgs 委托(delegate)模式吗?

javascript - 如何从 jquery 或 javascript 中的字符串值中获取 "year"?

javascript - 为什么 jsfiddle 给我错误 "SyntaxError: Unexpected token :"?

javascript - 将随机数存储在长度为 25 的数组中

php - 动态元素中的 jquery 样式内容

c++ - 有没有办法找出第二个事件将在 MFC 中发生

javascript - 如何以现代 Angular 将事件从孙辈发送到祖 parent ?

javascript - node-webkit 窗口宽度问题

javascript - 脊柱多个动画

javascript - 自动调用 jQuery .click() 函数