0

次のサイトで、Pjax フラグメントに関する難しいバグに遭遇しました。

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

現在、ナビゲーションの「スケジュール」および「マップ」リンクをクリックすると、requirejs の厚意により、いくつかの条件付き JavaScript とともに Pjax を介してページ フラグメントが読み込まれます。

「マップ」ページでは、最初のページの読み込みで、各要素の幅が.side-panel正確にクラスで計算されます。ただし、幅が照会されたときに選択された要素が DOM に存在するという事実にもかかわらず、後続の読み込みでは幅 0 が返されます。

バグを再現するには:

  1. マップが読み込まれるまで待ちます
  2. 「スケジュール」リンクをクリックしてスケジュールページを読み込みます
  3. 「地図」リンクをクリックして、地図ページを読み込みます。それぞれの幅は.side_panel0 として記録されます。

このテスト中にコンソールを開いたままにしておくと、ページの読み込み時に適切な幅が記録され、スケジュール ページが 2 番目のステップで動的に読み込まれ、マップ ページが.side_panelDOM の要素と共に読み込まれることがわかりますが、幅 0 を返します。

4

1 に答える 1

6

コンソールを見ると、パネル div に がありませんoffsetParent。これは、まだ DOM に挿入されていないことを意味し、幅が 0 になることを意味します。

于 2013-08-27T04:31:49.793 に答える