我不想等到整个 HTML DOM 准备好。请注意,我不是在谈论动态加载的 HTML 元素。我说的是 HTML 中但尚未渲染的元素。
最佳答案
三个想法:
在 HTML 中使用属性,如
onclick="foo()"
。该规定将立即生效。您可以放置
<script>
紧跟在 HTML 中嵌入的 HTML 元素之后的标记,并让该脚本添加事件处理程序。位于脚本之前的所有 DOM 元素都保证被解析并准备就绪。您可以通过最初隐藏元素(内联样式规范或 CSS),然后等到它位于 DOM 中,运行脚本来安装事件处理程序,然后使对象可见。如果您使用
visibility: hidden
,那么文档就会正常布局,内容可以做成visibility: visible
安装事件处理程序后。
在对象被解析并进入 DOM 之前,浏览器不会提供对对象的访问,因此任何想要对其进行操作的脚本必须要么物理上位于 DOM 元素之后,要么必须等待指示事件发生DOM 已加载。
当 DOM 元素被解析但尚不可见时,浏览器不会提供事件,因此您必须使用其他方法之一来解决您的问题。
关于javascript - 有没有办法在 HTML 元素出现在页面上时立即将事件处理程序附加到该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969553/