Pjax / Ajax片段在加载时返回宽度/ offsetWidth为0

时间:2013-08-24 22:20:14

标签: javascript jquery ajax requirejs pjax

在以下网站上遇到Pjax片段的难题:

https://dl.dropboxusercontent.com/u/65752410/map.html

目前,单击导航中的“schedule”和“map”链接将通过Pjax加载页面片段以及一些条件javascript,由requirejs提供。

在“地图”页面上,第一页加载将正确计算类.side-panel的每个元素的宽度。但是,后续加载将返回宽度0,尽管在查询宽度时,所选元素存在于DOM中。

重现错误:

  1. 等到地图加载
  2. 点击“日程安排”链接以加载日程安排页面
  3. 点击“地图”链接加载地图页面。每个.side_panel的宽度将记录为0。
  4. 如果在此测试期间保持控制台处于打开状态,您将看到在页面加载时记录了正确的宽度,在第二步中动态加载了计划页面,然后加载了{{1 DOM中的元素,但返回宽度为0。

1 个答案:

答案 0 :(得分:6)

如果查看控制台,面板div没有offsetParent,这意味着它尚未插入DOM,这意味着宽度将为0.