Jquery 重新加载时,合理的侧壁断裂
我正在为我的网页使用JustizedGallery。当我第一次访问该页面时,库将正确显示。但当我重新加载页面时,它会断开 我用流星和反应 旧代码示例:Jquery 重新加载时,合理的侧壁断裂,jquery,meteor,reactjs,image-gallery,Jquery,Meteor,Reactjs,Image Gallery,我正在为我的网页使用JustizedGallery。当我第一次访问该页面时,库将正确显示。但当我重新加载页面时,它会断开 我用流星和反应 旧代码示例: $(document).ready(() => { $('#gallery').justifiedGallery({ rowHeight: 400, fixedHeight: false, lastRow: 'justify', margins: -3, }); }); 我已经将它放到jQ
$(document).ready(() => {
$('#gallery').justifiedGallery({
rowHeight: 400,
fixedHeight: false,
lastRow: 'justify',
margins: -3,
});
});
我已经将它放到jQuery setTimeOut()函数中
setTimeout(function(){
$('#gallery').justifiedGallery({
rowHeight: 400,
fixedHeight: false,
lastRow: 'justify',
margins: -3,
});
}, 100);
现在它工作得很好。我只想知道这是解决问题的正确方法?这是为了将来的证明 您不应该像这样运行全局操作DOM的代码。您得到的是实际模板渲染的竞争条件。这有时会随机工作,有时不会,并且总是会与模板引擎发生冲突,这最多会阻碍应用程序的性能 将库创建移动到
Template.onRendered()
方法,并使用this.$('.gallery')
,而不仅仅是$('#gallery')
。如果您使用的是React,则等效位置是包含.gallery
div的演示组件的componentDidMount
方法
旁注:不要使用ID选择元素,使用类或数据属性。Ids是一种不好的做法,因为您正在创建的组件不可重用,并且可能存在性能问题。很好的解释。谢谢