-2

ajax ページに問題があります。インデックス ファイルには、次のページネーション コードがあります。

<div id="pagesn">
<?php
    require_once 'libs/db.class.php';
    require_once 'libs/global.inc.php';
         $query="select count(*) as tot from table";
          $countset=$db->runquery($query);
          $count=$db->get_row($countset);
          $tot=$count['tot'];
          $page=1;
          $ipp=3;
          $totalpages=ceil($tot/$ipp);
          echo"<ul class='pages'>";
          for($i=1;$i<=$totalpages; $i++)
          {
              echo"<li class='$i'>$i</li>";
          }
          echo"</ul>";
        ?>
</div>

ここにAJAXコードがあります:

$("#pagesn .pages li").click(function(){
        //show the loading bar
        showLoader1();  
        $("#pagesn .pages li").css({'background-color' : ''});
        $(this).css({'background-color' : '#A5CDFA'});                
        $("#resn").load("data1.php?page=" + this.className, hideLoader1);
    });

    // by default first time this will execute
    $(".1").css({'background-color' : '#A5CDFA'});
    showLoader1();
    $("#resn").load("data1.php?page=1",hideLoader1);

主な問題は、php コードがインデックス ファイルにあるため、更新しないと更新できないため、新しいエントリを追加してもページ番号が更新されないことです。このコードを他のファイルに追加し、jQuery で同じ div にロードしようとしました:

$('#pagesn').load('data.php');

その後、ページは自動的に更新されるのにクリックできなくなるのですが、その原因は何ですか?

4

3 に答える 3

0

li要素を動的に追加および削除する場合、' ' ハンドラをアタッチするには、 .on関数clickを使用する必要があります。

$('#pagesn').on('click','.pages li',function(){
于 2012-07-05T20:26:18.657 に答える
0

試す:

$("#pagesn").on("click",".pages li",function(){
        showLoader1();  
        $("#pagesn .pages li").css({'background-color' : ''});
        $(this).css({'background-color' : '#A5CDFA'});                
        $("#resn").load("data1.php?page=" + $(this).attr("class"), hideLoader1);
    });
于 2012-07-05T20:26:39.507 に答える
0

.on() 関数のドキュメントから:

委任されたイベントには、後でドキュメントに追加される子孫要素からのイベントを処理できるという利点があります。

したがって、.on()代わりに使用.click()すると、コードの実行後に挿入する要素に対してもハンドラー関数が実行されるようになります。

$('#pagesn').on('click','.pages li',function(){
  // Do something ...
})
于 2012-07-05T20:32:41.073 に答える