评论系统 - 显示已发布的评论,无需重新加载页面

时间:2014-02-13 16:55:12

标签: javascript php jquery ajax comments

使用PHP处理评论系统。

一切正常,插入,验证以及ajax调用。

目前我在保存页面内容的容器上执行.load()。

但是,这会在尝试再次发表评论时导致问题。 javascript不起作用,与评论链接的一些javascript函数也不起作用和类似的东西。

每次用户发帖时,我应该如何处理评论。

就像在facebook上一样,你发表评论,新的评论只是放在最后一个评论之下。

我唯一可以想到的是我使用.append()并将新评论附加到列表中。

在我的PHP页面中,我可以设置用户名,评论,用户个人资料图片等的JSON返回,然后将所有数据追加回去?

否则有更好的方法可以简单地重新加载'成功ajax调用后的div容器?

谢谢,我的工作......但我想以正确的方式学习。

克雷格。

1 个答案:

答案 0 :(得分:0)

您可以使用$ .ajax加载新注释,并使用.append()或prepend()在容器中插入新注释。如果在函数中包装调用,则可以反复调用该函数(例如每2秒)以检查新注释。

如果我没记错的话。仅在浏览器刷新后元素准备就绪时才会执行.load()。

哪些东西不起作用?请记住,在成功的AJAX调用之后必须绑定事件和数据。这意味着如果在加载页面时将事件绑定到链接,它们显然仍然有效。但是如果您稍后插入链接则没有任何事件。

我通常会这样做:

$.ajax({
    url: 'ajax.php',
    data: { 'parameters': 'yada yada' },
    dataType: 'json',
    success: function( data ) {
        $('.links').unbind().click(function() { alert('hello!'); });
    }
});

.unbind()的原因是你将绑定现有链接上的几个事件 - 你不希望这样; - )