0
我試圖用我的代碼更有組織。我有一個主要的對象,我正在向該對象添加方法。在緩存之前等待一個元素被加載
問題是:我不知道如何緩存我的選擇器。有一個元素會被延遲添加,並且總是以null結尾。所以我正在尋找這樣做的最佳做法。
這裏是我所在的地方:
var stickyAd = {};
// cache the elements I'll need
stickyAd.primaryContent = document.getElementById('primary-content');
stickyAd.wpadminbar = document.getElementById('wpadminbar');
// Calculate the offset of an element from the top of the document
stickyAd.topOffset = function(el) {
var rect = el.getBoundingClientRect(),
scrollTop = window.pageYOffset || document.documentElement.scrollTop;
return { top: rect.top + scrollTop };
};
// The rest of my methods
stickyAd.scrollDetect = function(){};
stickyAd.stickyOn = function(){};
stickyAd.stickyOff = function(){}
stickyAd.init = function(){
\t stickyAd.scrollDetect();
};
// Finally, call init()
stickyAd.init();
這wpadminbar元素,此腳本加載後獲取添加的一個,所以它總是出現空。因此,儘管這看起來像是一個相當具體的問題,但我期待着看到如何最好地組織這種方式來防止這種情況發生。
我該如何在適當的時候緩存這個對象內的選擇器?我是否將它們包裝在DOMContentLoaded函數或其他東西中?
感謝您的任何幫助!
太棒了。感謝你! DOMContentLoaded和#3的組合最有意義。總的來說,我打電話過早。 – saltcod