簡體   English   中英

將HTML元素插入DOM時是否存在“元素就緒”事件?

[英]Is there a “element ready” event when a HTML element is inserted into DOM?

我使用Backbone View來渲染一些小部件,它們在作為獨立元素呈現后插入到DOM中。 雖然某些插件/小部件在元素仍處於“半空中”時工作,但其他插件/小部件需要元素成為DOM的一部分才能正常運行。 例如,在骨干視圖的render方法中,我需要調用:

$("#images").slimScroll(); //slimScroll is a jquery plugin that add custom scrollbar 

但這不起作用。 它僅在Backbone View元素位於DOM之后才能工作,現在我的解決方法是在將widget移植到DOM之后調用插件方法,但這非常不靈活。 因此,當元素在DOM中呈現時,我需要一個事件,類似於document.ready,但是當元素在文檔中准備就緒時會觸發。 有這樣的事件嗎? 或者處理這種情況的最佳方法是什么?

關於Ajax的任何內容都不會導致DOM更新。

如果由於某些Ajax內容而導致DOM更新,那是因為事件處理函數已經修改了DOM。

只需將代碼放在該事件處理程序中的DOM修改代碼之后。

也就是說,您可以在支持的瀏覽器中使用變異觀察 來監視DOM的更改。

您必須在視圖范圍內查找元素。 像這樣:

this.$("#images").slimScroll();

但我想它不會起作用,因為插件需要將元素添加到DOM來計算寬度,高度,偏移量等。

您可以使用ajaxStart ,它將在發出Ajax請求時觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM