【问题标题】:Unable to get element width on page refresh无法在页面刷新时获取元素宽度
【发布时间】:2015-02-22 02:26:47
【问题描述】:

我有以下代码:

  //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?我很困惑,非常感谢任何帮助。

【问题讨论】:

  • 页面刷新再次运行您的所有 javascript - 我假设在您的代码中设置了“上一个”,因此要保持以前的状态,如果可行,对其进行硬编码,设置一个 cookie 以保留 ' previous' 在下一页加载,然后阅读,以您使用的任何后端语言将“previous”值推送到会话中。

标签: javascript css width element


【解决方案1】:

我实际上已经设法让它工作了。这是一个非常简单的解决方案。我只是将我的解决方案包装在 $(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});

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2020-01-17
    • 2017-02-20
    • 2017-06-03
    • 2013-06-23
    • 2018-09-15
    • 1970-01-01
    相关资源
    最近更新 更多