在第一页加载时尝试访问handlebar.js生成的元素时,我什么也得不到。刷新页面时,一切都按预期工作。
我在做什么是这样的:
第一个把手创建了一组名为“result”的节元素。然后我将它添加到我的DOM中:
d1.insertAdjacentHTML('afterend', result);
然后,使用另一个js插件:
this.DOM.entries.length
返回0,因此我无法使用以下方法访问这些元素:
this.DOM.entries[this.currentPos]
奇怪的是,当我刷新页面时,一切都按预期工作,显然是由于浏览器缓存。我怎么能克服这个?为什么会这样?
我找到了解决这个问题的方法。我将我的DOM枚举代码封装在setTimeout中,如下所示:
setTimeout(function(){
this.DOM.entries.length
...
}, 500);
现在它有效。笨拙,因为它增加了500ms的延迟到页面,但它的工作原理。