首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本不能处理Ajax加载的内容

问脚本不能处理Ajax加载的内容
EN

Stack Overflow用户
提问于 2011-11-08 21:49:36
回答 1查看 2K关注 0票数 4

我有一个jquery驱动的投票系统,其他页面上的项目是通过ajax加载的,但是在ajax加载的内容上,jquery投票需要刷新页面才能处理投票。

http://ohmygosh.vr.lt/

我认为问题出在此file中的操作(?)但我不是很确定。我没有任何代码可以开始,因为我甚至不知道从哪里开始。如何解决此问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-10 00:55:54

您似乎正在使用SmartAjax加载页面内容。SmartAjax所做的是更改页面url (使用pushState或哈希),加载数据,并用加载的内容替换#posts的内容。

问题是您正在侦听来自DOM元素的单击事件,这些事件稍后会被删除并替换为新的DOM元素。因此,不会侦听来自ajax加载的内容的单击事件。在这种情况下,live()帮不上忙。

要解决此问题,您至少有以下两个选项:

1)使用jQuery的delegate()附加处理程序,并使用#posts作为根元素,因为它在加载新内容后仍然存在。

像这样的东西应该是有效的:

代码语言:javascript
复制
$('#posts').delegate(':input', 'click', function() {
    var value = $(this).val();
    alert('You have clicked thumbs up/down, value: ' + value);
    return false;
});

2)数据加载完成后,将点击监听器添加到已加载的项中。

注意:从jQuery 1.7开始,您应该使用on()而不是delegate()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8051404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档