微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 脚本无法处理加载Ajax的内容

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

http://ohmygosh.vr.lt/

我认为这个问题属于file(?)中的行动,但我不太确定.我没有任何代码可以启动,因为我甚至不知道从哪里开始.我该如何解决这个问题?

解决方法:

似乎您正在使用SmartAjax加载页面内容. SmartAjax的作用是更改页面URL(使用pushState或hash),加载数据并用加载的内容替换#posts div的内容.

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

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

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

这样的事情应该有效:

$('#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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐