可能重复:
如何在 jQuery 中检测新元素的创建?
我正在尝试替换按钮的文本值,但该按钮在页面加载时不存在,它是在其他几个用户选择之后出现的。
我试图在按钮出现在页面上后立即替换按钮文本 - 不是基于它被单击或悬停在上面或类似的东西。
如果按钮存在 onload,我将能够使用 javascript 替换该值而没有任何问题 - 但我无法确定这是否可以使用 jQuery 以及使用哪个函数?
可能重复:
如何在 jQuery 中检测新元素的创建?
我正在尝试替换按钮的文本值,但该按钮在页面加载时不存在,它是在其他几个用户选择之后出现的。
我试图在按钮出现在页面上后立即替换按钮文本 - 不是基于它被单击或悬停在上面或类似的东西。
如果按钮存在 onload,我将能够使用 javascript 替换该值而没有任何问题 - 但我无法确定这是否可以使用 jQuery 以及使用哪个函数?
我可以想到一些可以跨浏览器工作的可能解决方案:
识别导致按钮添加到页面的用户事件,挂钩该事件并在该事件运行之后,找到该按钮并更新它的文本。
使用间隔计时器轮询您的页面,以了解何时将按钮添加到页面。
如果按钮是在 jQuery ajax 操作之后添加的,并且您无法修改执行该 ajax 工作的实际代码或添加按钮,则可以全局挂钩 jQuery 操作并在任何完成后在短 setTimeout() 中检查页面jQuery ajax 操作。
您不能使用 jQuery.on()
找出对象何时添加到页面。 .on()
适用于通过在父对象(未动态添加到页面)处捕获传播事件来在将来添加到页面的对象的事件处理程序,但实际上并不告诉您何时将对象添加到页面。
仅供参考,在某些浏览器中有一个DOMSubtreeModified
andDOMNodeInserted
事件听起来像是为此类事情准备的,但它仅在某些浏览器中可用并且已被弃用(不推荐使用)。
这种通知的未来方向是Mutation Events,但这还没有得到广泛的支持。