2011-02-04 84 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()函数将事件附加到当页面加载时不存在的元素上。