2013-06-22 96 views
0

我有一個網站使用分頁,並使用jQuery和AJAX過濾。所有作品都很好,直到我將鏈接更改爲Javascript鏈接。運行AJAX調用後,jQuery代碼不會執行

在主頁上,沒有使用任何過濾或分頁,所有工作如預期。在我使用分頁或過濾(有效地使用兩者的AJAX調用)後,我的JavaScript鏈接不再工作。

的JavaScript的鏈接是:

$(function(){ 
    $(".artikel_box_lk .button").click(function(e) { 
     window.open("/lk/" + $(this).attr("rel"), "_blank"); 
    }); 
}); 

而對於分頁代碼:

function loadData(page){     
    loading_show(); 
    $.ajax 
    ({ 
     type: "POST", 
     url: "php/load_data.php", 
     data: dataToSend, 
     success: function(msg) 
     { 
      $("#container").ajaxComplete(function(event, request, settings) 
      { 
       loading_hide(); 
       $("#container").html(msg);       
      }); 
     } 
    }); 
} 

我的猜測是,JavaScript並沒有得到重新加載的AJAX調用的,因爲只有一部分該頁面被重新加載,但我不確定這是否是這種情況以及如何解決此問題。

+0

+1,這是一個有效的問題 –

回答

1

似乎回傳後,你的JavaScript沒有加載。嘗試添加自己的函數中頁面加載網頁,如:

function pageLoad() 
{ 
    $(".artikel_box_lk .button").click(function(e) { 
     window.open("/lk/" + $(this).attr("rel"), "_blank"); 
    }); 
} 
+0

我不確定現在在哪裏放置這個功能?它是否需要在loadData函數中?或者在AJAX調用的成功函數中?或者別的地方?對於noob問題抱歉! – Hugo

+0

您應該將它添加到JavaScript標記內的網頁(.aspx或.html或任何類型的網頁)中,它將在服務器回發後重新註冊鏈接。 –

+0

啊,好吧......我想我現在有工作。我在load_data.php文件中添加了對函數的調用,每當頁面被AJAX重新加載時,現在都會調用它。正確?無論如何感謝您的幫助! – Hugo

0

event delegation

$("#container").on ("click",".artikel_box_lk .button" ,function(e) { 
     window.open("/lk/" + $(this).attr("rel"), "_blank"); 
    }); 
+0

如果我用這個代碼,而不是我的鏈接不工作。我可能在這裏錯過簡單的東西。 – Hugo