我正在使用AJAX分頁,並且工作正常。如何在ajax響應頁面中運行jquery?
它成功返回數據。例如: -
if (xmlHttp.readyState==4)
{
document.getElementById("NewsFeedListID").innerHTML=xmlHttp.responseText;
}
現在NewsFeedListID div包含正確的數據。
現在我必須在該響應AJAX頁面上使用jQuery,但jQuery不起作用。
任何人都可以幫忙嗎?
我正在使用AJAX分頁,並且工作正常。如何在ajax響應頁面中運行jquery?
它成功返回數據。例如: -
if (xmlHttp.readyState==4)
{
document.getElementById("NewsFeedListID").innerHTML=xmlHttp.responseText;
}
現在NewsFeedListID div包含正確的數據。
現在我必須在該響應AJAX頁面上使用jQuery,但jQuery不起作用。
任何人都可以幫忙嗎?
在您的問題的評論部分閱讀您的解釋我相信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');})
解決你眼前的問題。
最好的辦法是在原始頁面中包含jQuery,而不是AJAX請求,然後使用.live()
來綁定事件。這會將事件綁定到元素,而不管它是否包含在頁面中。然後,當你通過AJAX插入元素時,你的按鈕將工作。
我的理解是,你在返回的頁面中有JS代碼,它不工作,它不會工作,因爲設置innerHTML不會執行其中的JS,它只是放置HTML代碼,執行JS代碼在這裏你將不得不eval代碼後,你插入頁面中。我建議你在原始頁面中包含所有的JS代碼,並使用jQuery的.live()函數將事件附加到當頁面加載時不存在的元素上。
什麼jQuery? ... – 2011-02-04 16:39:08
你可以進入一些關於jQuery代碼不工作的更多細節嗎? – 2011-02-04 16:39:47