2017-03-31 65 views
1

我有一個單一的PHP頁面加載一個表使用jquery/ajax分頁。點擊分頁中的任何頁面(除了初始頁面)後,我無法將行重定向到其他頁面PHP/Ajax/jQuery的行動不工作後分頁點擊

這裏是我爲表格生成的html的簡化代碼。我知道每次分頁頁面改變時都會正確生成html。

<tr class="table-row" data-myredirect="http://example.com/page"> 
<td>blah blah</td> 
</tr> 

在加載中的表數據的成功(僅用戶運行查詢後運行一次),我運行下面的(簡化的):

success:function(result){ 
     //display table data (not shown) 
$(".table-row").click(function() { 
     //redirect 
     window.document.location = $(this).data("myredirect"); 
    }); 
} 

當用戶選擇從分頁鏈接不同的頁面,運行以下內容:

//executes code below when user click on pagination links 
    $("#results").on("click", ".pagination a", function (e){ 
     e.preventDefault(); 
     $(".loading-div").show(); //show loading element 
     var page = $(this).attr("data-page"); //get page number from link 
     $("#results").load("test.php",{"page":page, "myparam":searchItemOne}, function(){ //get content from PHP page 
      $(".loading-div").hide(); //once done, hide loading element 
      //fixes scrolling up bug 
      $('html, body').animate({ 
     scrollTop: $("#results").offset().top 
    }, 0); 
     }); 

    }); 

什麼可能導致該操作在導航到下一個分頁頁面時不再有效?我可以根據要求包含更多的代碼。

+1

你能提供一個更完整的問題(但仍然是最小的)的例子嗎?我*懷疑*這是一個重複的:https://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements但很難確切地知道發佈的不完整段。 – David

+0

你關心PHP還是隻關心JavaScript類型代碼? – heyitsmyusername

+0

如果問題在客戶端,那麼客戶端代碼似乎是適合檢查的東西。 – David

回答

1

我認爲這是因爲您的.table-row是在javascript代碼之後呈現的(在第二次通過AJAX加載html之後),因此重定向代碼不知道新的table-row
儘量把重定向代碼

$(".table-row").click(function() { 
     //redirect 
     window.document.location = $(this).data("myredirect"); 
    }); 

php文件,以便它與新的HTML
重新加載。