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