能否监听类似于“某个 selector 指向的元素已生成”的事件?

2019-09-15 01:10:53 +08:00
 wallriding

现有一个网页(非我控制的),点击某个按钮之后会生成一个 form,我现在想通过 greasemonkey 脚本去给这个 form 里的<div id="existingForm">后面加一个<div id="newForm">

我的想法是在这个按钮的 click 事件回调函数里,用$("#existingForm")找到这个元素,然后添加。但是我发现找不到这个元素,我猜测原因是点击按钮之后这个 existingForm 需要一小段时间才能生成,而我检测是否有这个元素的代码先于添加这个元素的代码执行了。于是我加上了 setTimeout,就能顺利找到元素了。

我的问题是除了这个用 setTimeout 暴力轮询的放法以外,还有别的方法吗?我理想中的状态是,在 existingForm 在网页上出现之后,立即执行某段代码。

先感谢愿意帮忙的朋友了

3426 次点击
所在节点    JavaScript
7 条回复
mskf
2019-09-15 03:01:08 +08:00
监听父节点的子节点变动事件?
sker101
2019-09-15 03:09:16 +08:00
azh7138m
2019-09-15 03:26:58 +08:00
zhengjian
2019-09-15 05:05:02 +08:00
聊聊 JS DOM 变化的监听检测与应用 ——张鑫旭
https://www.zhangxinxu.com/wordpress/2019/08/js-dom-mutation-observer/
autoxbc
2019-09-15 10:11:32 +08:00
belin520
2019-09-15 10:28:36 +08:00
事件代理?
jinliming2
2019-09-15 16:28:48 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX