如何在ajax响应页面中运行jquery?

时间:2011-02-04 16:35:40

标签: php jquery ajax

我使用的是AJAX分页,但工作正常。

成功返回数据。 e.g: -

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

现在NewsFeedListID div包含正确的数据。

现在我必须在该响应AJAX页面上使用jQuery,但jQuery无效。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

最好的办法是在原始页面中包含jQuery,而不是AJAX请求,然后使用.live()绑定事件。这会将事件绑定到元素,无论它是否包含在页面中。然后,当您通过AJAX插入元素时,您的按钮将起作用。

答案 1 :(得分:1)

在您的问题的评论部分阅读您的解释我相信Josh已经触及了answer

您的jQuery事件无法正常工作的原因是,您使用$('#delete').click(function() {alert('success');})将事件处理程序“附加”到ID为“delete”的锚点/按钮(即#delete部分),然后是“锚点” #delete“当你替换”#NewsFeedListID“的innerHTML时,将从DOM中删除,所以你要么必须将事件处理程序重新附加到#delete,要么Josh建议使用称为事件的技术即使您要替换innerHTML,也会保持click事件的触发。

我将留给你看看“事件委托”并使用jQuery来简化你的ajax请求(查看方法“load”以获得一个非常简单的替代你所描述的内容)但是使用$('#delete').live('click',function() {alert('success');})解决您的紧急问题。

答案 2 :(得分:1)

我的理解是你在返回的页面中有JS代码,它不起作用,它不会工作,因为设置innerHTML并不执行其中的JS,它只是放置HTML代码,以执行JS代码在此处,您必须在将代码插入页面后评估代码。

Eval永远不是一个好主意,我建议你在原始页面中包含所有JS代码,并使用jquery的.live()函数将事件附加到页面加载时不存在的元素。

相关问题