告诉您元素已追加到文档的事件
Event to tell you that an element has been appended to the document?
html
元素的某些属性在HTML DOM中之前无法弄清楚,例如offsetHeight或offsetWidth。 如果我创建元素('div')并想使用div 的 offsetHeight,那么当将此元素附加到文档时,是否有一个事件会触发,以便我知道我现在可以使用 offsetHeight?
DOMNodeInserted
可能是您要找的。有关 DOM 事件的详细信息,请参阅 https://developer.mozilla.org/en/DOM/DOM_event_reference
不,我认为没有事件。但是,您可以将属性附加到新创建的元素,告诉脚本已追加该属性。您可以执行以下操作:
function appendSignal(el,toElement){
to.appendChild(el);
el.isAppended = true;
}
var nwdiv = document.createElement('div');
// do stuff with nwdiv
appendSignal(nwdiv,document.body);
//doing other stuff
if (nwdiv.isAppended) {
/* nwdiv.offsetHeight should be available... */
}
某些浏览器会在您将其添加到 DOM 后立即初始化这些属性。 它需要在 DOM 中,以便可以应用 CSS 规则。
因此,您不需要接收事件,只需在创建元素后立即将元素添加到 DOM 中即可。
但是,如果您发现所需的属性没有立即初始化,则可以将该代码分离到另一个函数中(就像事件处理程序一样),并使用setTimeout(otherFunction, 0)
无延迟地调用它。 一旦你的JavaScript完成执行,浏览器将相应地响应你的DOM更改,然后立即调用你的其他函数。 这有点像举办活动,但自己触发它。
相关文章:
- 来自文档或下一个静态父级的事件委派
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- 将事件发送到javascript文档的react本机模块是否正确
- 枚举附加到文档的HTML对象的所有事件
- 在文档加载Tampermonkey时单击事件激发
- 无法使用JavaScript从iTextSharp访问PDF文档页面/事件
- 我是否可以使用 Angular 将鼠标向上事件绑定到文档正文
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- 收集订阅者的流星事件,用于在 mongodb 中新插入文档
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 指定父文档按钮点击事件来自Angular JS中的子文档控制器
- 按标记名称将事件侦听器添加到所有文档子项
- 单击文档时的Backbone JS事件
- 在文档就绪时触发更改事件
- RxJs如何处理文档事件
- 文档事件不绑定到页脚
- Twitter 引导弹出窗口 :如何在不使用正文/文档事件处理程序的情况下在外面单击时隐藏它
- 如何查找文档事件
- Web浏览器控件:如何捕获文档事件