Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在页面刷新时获取元素宽度_Javascript_Css_Width_Element - Fatal编程技术网

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”值以您使用的任何后端语言推送到会话中。