0

可能重复:
如何在 jQuery 中检测新元素的创建?

我正在尝试替换按钮的文本值,但该按钮在页面加载时不存在,它是在其他几个用户选择之后出现的。

我试图在按钮出现在页面上后立即替换按钮文本 - 不是基于它被单击或悬停在上面或类似的东西。

如果按钮存在 onload,我将能够使用 javascript 替换该值而没有任何问题 - 但我无法确定这是否可以使用 jQuery 以及使用哪个函数?

4

1 回答 1

0

我可以想到一些可以跨浏览器工作的可能解决方案:

  1. 识别导致按钮添加到页面的用户事件,挂钩该事件并在该事件运行之后,找到该按钮并更新它的文本。

  2. 使用间隔计时器轮询您的页面,以了解何时将按钮添加到页面。

  3. 如果按钮是在 jQuery ajax 操作之后添加的,并且您无法修改执行该 ajax 工作的实际代码或添加按钮,则可以全局挂钩 jQuery 操作并在任何完成后在短 setTimeout() 中检查页面jQuery ajax 操作。

您不能使用 jQuery.on()找出对象何时添加到页面。 .on()适用于通过在父对象(未动态添加到页面)处捕获传播事件来在将来添加到页面的对象的事件处理程序,但实际上并不告诉您何时将对象添加到页面。

仅供参考,在某些浏览器中有一个DOMSubtreeModifiedandDOMNodeInserted事件听起来像是为此类事情准备的,但它仅在某些浏览器中可用并且已被弃用(不推荐使用)。

这种通知的未来方向是Mutation Events,但这还没有得到广泛的支持。

于 2012-09-24T16:03:01.837 回答