我有一个jquery驱动的投票系统,其他页面上的项目是通过ajax加载的,但是在加载ajax的内容上,jquery投票需要刷新页面以便进行投票处理.
我认为这个问题属于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] 举报,一经查实,本站将立刻删除。