我使用的是AJAX分页,但工作正常。
成功返回数据。 e.g: -
if (xmlHttp.readyState==4)
{
document.getElementById("NewsFeedListID").innerHTML=xmlHttp.responseText;
}
现在NewsFeedListID div包含正确的数据。
现在我必须在该响应AJAX页面上使用jQuery,但jQuery无效。
有人可以帮忙吗?
答案 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()函数将事件附加到页面加载时不存在的元素。