0

ホームページの特定のカテゴリ リストのコンテンツ数をカウントする一連のスパン タグを含む外部 html ファイルと、「ゲーム (9)、映画 (2)」などの他のページをロードしようとしています。など.." そう:

html経由でロードするコンテンツajax-

  <span class="category games">(0)</span>
  <span class-"category movies">(0)</span>

数字と読み込まれた ajax コンテンツを挿入するためのメインの html コード -

 <div id="categories">
  <span class="counter cgames">(0)</span>
  <span class="counter cmovies">(0)</span>
 </div>

JavaScriptファイル -

    $( "#categories" ).load( "bunchofspans.html" );
    $(function() {
      var a = $(".movies").length;
            $(".cmovies").text("(" + a + ")");
          a = $(".games").length;
            $(".cgames").text("(" + a + ")");
    });

の非表示の div に特定のカテゴリを持つ別のスパンを追加するだけで、カウンターに数字を追加するのは簡単です#categories。たとえば、ページ 1 に 6 つのゲームがあり、ページ 2 に別の 6 つがあり、合計で 12 になります。つまり、サイトのすべてのページに 12 スパンのカテゴリ ゲームを追加する必要があり、これには時間がかかります。これらのスパンを介して読み込むとajax、すべてのページに 1 つの場所が表示されます。

ajax の内容は完全に正常にロードされます。問題は、length()スパンをどのように追加してもカウントされないようで、数値がカウンターに戻ったり増加したりしないことです。

4

4 に答える 4

0

ここでの問題はspan、外部の html コンテンツがロードされているかどうかに関係なく実行される回数をカウントする関数です。それjQuery.loadは非同期だからです。jQuery.load ドキュメント
から

$.get(url, data, success) とほぼ同じです。

必要なのは、外部の html コンテンツが完全にロードされた後に実行されるように関数を移動することだけです

$( "#categories" ).load( "bunchofspans.html",function() {
      var a = $(".movies").length;
            $(".cmovies").text("(" + a + ")");
          a = $(".games").length;
            $(".cgames").text("(" + a + ")");
});
于 2013-10-29T06:58:44.250 に答える