4

すべての JSON 呼び出しを統合しています。この呼び出しからすべてを取り出し$.getJSONて、ページがまだ機能していることを確認しましたが、追加とリストビューを取り出すと、コンテンツが表示されません。

これは機能します:

    $.getJSON("data/rides.json",
        function(data){
          $('#myRideList').append( rideList.join(' ') );
          $('#myRideList').listview('refresh');
      });

しかし、これはしません:

  //  $.getJSON("data/rides.json",
  //    function(data){
          $('#myRideList').append( rideList.join(' ') );
          $('#myRideList').listview('refresh');
 //     });
4

1 に答える 1

5

DOM の準備が整う前にコードを実行している可能性があります。

getJSONバージョンは非同期で実行され、DOM をロードする機会を与えます。

2 番目のバージョンはすぐに実行されます。

コードを.ready()ハンドラーに配置して、DOM の準備ができていることを確認できます。

$(function() {
  //  $.getJSON("data/rides.json",
  //    function(data){
          $('#myRideList').append( rideList.join(' ') );
          $('#myRideList').listview('refresh');
 //     });
});

上記で使用した構文は、このためのショートカットです。

$(document).ready(function() {
    // ...
});

多くの場合、最も単純なソリューションが最適です。@TJCrowderが指摘したように、スクリプトをページの下部(または少なくともページの目的の要素の後のどこかに) に配置する実証済みの手法は簡単で、裏技は必要ありません。

<body>
   <!-- your HTML markup -->

   <script type="text/javascript" src="http://example.com/my/script.js"></script>
</body>
于 2012-12-01T16:26:29.917 に答える