Javascript 无法在页面刷新时获取元素宽度
我有以下代码:Javascript 无法在页面刷新时获取元素宽度,javascript,css,width,element,Javascript,Css,Width,Element,我有以下代码: //get the largest block: if no block, apply to first block var previous = $('.block-grid .block-group .block.block-lg'); var blocks = $('.block-grid .block-group .block'); blocks.last().css({'left': (previous.width() + previous.posi
//get the largest block: if no block, apply to first block
var previous = $('.block-grid .block-group .block.block-lg');
var blocks = $('.block-grid .block-group .block');
blocks.last().css({'left': (previous.width() + previous.position().left), 'top': previous.position().top});
刷新页面时,此部分:
previous.width()
,返回0。通常它应该返回400,这是最大块的大小。但是,当我导航到页面的URL时,它返回400。为什么页面刷新会使宽度值为0?我很困惑,非常感谢您的帮助 事实上,我已经设法让它工作了。这是一个非常简单的解决方案。我只是将我的解决方案包装在一个$(window.load()
)中,所以它看起来像这样:
$(window).load(function(){
//get the largest block: if no block, apply to first block
var previous = $('.block-grid .block-group .block.block-lg');
var blocks = $('.block-grid .block-group .block');
blocks.last().css({'left': (previous.width() + previous.position().left), 'top': previous.position().top});
});
页面刷新会再次运行所有javascript—我假设代码中设置了“previous”,因此要保持前一个状态,也可以对其进行硬编码(如果可行),在下一个页面加载时设置cookie以保持“previous”,然后读取该值,将“previous”值以您使用的任何后端语言推送到会话中。