1

読み込み中の gif を表示するには、ajaxStart と ajaxStop を使用します。このコードを追加するまでは正常に機能していました:

$(function(){  
$('.link a').live('click', function(ev) {

    ev.preventDefault();
    ev.stopPropagation();


    $('#main').load($(this).attr('href'));


  return false;
});
});

これは私の ajaxStart/Stop コードです:

$(document).ajaxStart(function(){
    $("#loading").show();
 }).ajaxStop(function(){
    $("#loading").hide();
 });

助けてください :)

EDIT :問題の原因となっている追加したコードは、ウィンドウ全体をロードするのではなく、div 内のページのリンクがクリックされたときに div 自体にリンクをロードできるようにするために追加されました。AjaxStart と AjaxStop は、ページが新しく読み込まれたときに正常に動作しますが、(ページを読み込む) div 内のリンクをクリックすると、AjaxStart が起動しません。

リンクのコード (div 内のページにあります):

 echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link'     name='page_a_link' >$i</a></span>";

 echo "<span class = 'link'><a id='page_a_link' name='page_a_link' href='feed.php?".$new_query_string ."' >< Pre</a></span>";

 echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link' name='page_a_link' >Next</a></span>";

これらはページネーション用です。PHPコードからリンク部分を取り出しただけです。

4

1 に答える 1

0

問題は、ページをリロードすると、コンテンツ、したがってページネーション リンクが置き換えられ、古いバインド クリック イベントが失われることだと思います

このコードを試してください:

$(function(){  


  function bindPagination() {
    $('span.link a').on('click', function(ev) {
       ev.preventDefault();
       // ev.stopPropagation();

       $('#main').load($(this).attr('href'), function(){
          //callback function fired when page loaded
          //now rebind click event
          bindPagination(); 
       });

       return false;
    });   
  }

}); 

この方法で「ローダー」を変更してみてください:

$('#loader')
  .bind("ajaxSend", function() {
    $(this).show(); 
        })
  .bind("ajaxComplete", function() {
    $(this).hide();
});
于 2012-12-08T03:49:21.567 に答える