2011-02-04 78 views
2

我正在使用AJAX分頁,並且工作正常。如何在ajax響應頁面中運行jquery?

它成功返回數據。例如: -

if (xmlHttp.readyState==4) 
{ 
document.getElementById("NewsFeedListID").innerHTML=xmlHttp.responseText; 
} 

現在NewsFeedListID div包含正確的數據。

現在我必須在該響應AJAX頁面上使用jQuery,但jQuery不起作用。

任何人都可以幫忙嗎?

+0

什麼jQuery? ... – 2011-02-04 16:39:08

+0

你可以進入一些關於jQuery代碼不工作的更多細節嗎? – 2011-02-04 16:39:47

回答

1

在您的問題的評論部分閱讀您的解釋我相信Josh擊中了answer

您的jQuery事件不起作用的原因是因爲您將使用$('#delete').click(function() {alert('success');})的事件處理程序「附加」到ID爲「delete」(這是#delete部分)的錨點/按鈕,然後稍後錨點「#delete」當您替換「#NewsFeedListID」的innerHTML時,get從DOM中移除,因此您必須重新將事件處理程序附加到#delete,或者如Josh建議使用稱爲事件委託的技術來保持點擊事件觸發即使你正在取代innerHTML。

我將讓你尋找到「活動代表團」,並使用jQuery簡化Ajax請求(調查方法「load」一個非常簡單的替代你所描述的),但使用$('#delete').live('click',function() {alert('success');})解決你眼前的問題。

2

最好的辦法是在原始頁面中包含jQuery,而不是AJAX請求,然後使用.live()來綁定事件。這會將事件綁定到元素,而不管它是否包含在頁面中。然後,當你通過AJAX插入元素時,你的按鈕將工作。

1

我的理解是,你在返回的頁面中有JS代碼,它不工作,它不會工作,因爲設置innerHTML不會執行其中的JS,它只是放置HTML代碼,執行JS代碼在這裏你將不得不eval代碼後,你插入頁面中。我建議你在原始頁面中包含所有的JS代碼,並使用jQuery的.live()函數將事件附加到當頁面加載時不存在的元素上。