2016-11-23 24 views
0

我正在嘗試編寫一個與DOM相關的函數,但問題在於聚合物在函數調用之前DOM被加載,並且正如所料,它給了我一個未定義的錯誤!如何在創建元素之後調用聚合物中的函數(如jquery中的ready函數)

我一直在尋找像onComplete這樣的事件,所以它可以在加載DOM後讀取我的函數。

***最好的例子就是在jQuery的準備功能

PS: 「準備好」 的事件在聚合物不能正常工作,

+0

這是webCompon剛剛好entsready函數,我需要等到整個dom被加載並在結尾觸發的東西 – Soheil

+0

像.. window.onload? http://stackoverflow.com/questions/4842590/run-function-when-page-is-loaded – Aks

+0

附加功能呢?即使你可以調用內附的異步函數做你想要的dom ... –

回答

0

你可以做這樣的事情:

var domReady = function (func) { 
    if ('complete' === document.readyState) { 
     func(); 

     return; 
    } 

    document.addEventListener('DOMContentLoaded', function() { 
     func && func(); 
    }); 
}; 

domReady(function() { 
    // Your code 
}); 
1

在聚合物2.0,你可以使用到這個connectedCalback生命週期法:

connectedCallback(){ 
    super.connectedCallback(); 
    Polymer.RenderStatus.beforeNextRender(this, function() { 
     // All references to the dom elements into the web component 
     // [...] 
    }); 
} 
相關問題