Php 在jquery注释系统中,仅对新注释使用hide()和fadeIn(';slow';),而不是对所有注释使用

Php 在jquery注释系统中,仅对新注释使用hide()和fadeIn(';slow';),而不是对所有注释使用,php,jquery,Php,Jquery,我有以下jquery和php代码,用于类似facebook的评论系统 用户键入评论,然后发布。我使用hide()和fadeIn('slow')以使发布的评论看起来漂亮。我唯一的问题是hide()和fadeIn('slow')适用于所有发布的评论 我想让它只适用于每次发布的新评论。你知道如何更正我的代码来做到这一点吗 <script> $(document).ready(function(){ $("#commen

我有以下jquery和php代码,用于类似facebook的评论系统

用户键入评论,然后发布。我使用hide()和fadeIn('slow')以使发布的评论看起来漂亮。我唯一的问题是
hide()
fadeIn('slow')
适用于所有发布的评论

我想让它只适用于每次发布的新评论。你知道如何更正我的代码来做到这一点吗

<script> 
    $(document).ready(function(){                           
    $("#comment_process").click(function(){
        if($("#comment_text").val() != ""){ 
            $.post("comments.php?action=post", { comment: $("#comment_text").val() }, function(data) {
                $(".comments").html(data).hide().fadeIn('slow');
                $("#comment_text").val("");
            });
        } 
    });   
    });   
</script>

<div class="comment_container">
    <div class="comment_form">
        <textarea id="comment_text" placeholder="type..."   style="font-size:11pt;  color:green;  resize:none ">    </textarea>
        <input type="button" id="comment_process" value="Post"/>
    </div>
</div>

<div class="comments">  <?php include_once("comments.php");?>  </div>    

$(文档).ready(函数(){
$(“#注释处理”)。单击(函数(){
如果($(“#注释_文本”).val()!=”){
$.post(“comments.php?action=post”,{comment:$(“#comment_text”).val()},函数(数据){
$(“.comments”).html(data.hide().fadeIn('slow');
$(“#注释文字”).val(“”);
});
} 
});   
});   

comments.php用于存储和检索数据库中的评论。

我不知道您的评论更新的顺序(Asc或Desc):

如果你的新评论首先出现,那么使用

$(".comments:first-child").html(data).hide().fadeIn('slow');
$(".comments").first().html(data).hide().fadeIn('slow');
其他用途

$(".comments:last-child").html(data).hide().fadeIn('slow');
为了更简单,您可以查看这些教程

您始终可以为帖子分配一个数据属性,然后使用

$('.comments[data-id=xxxxx]').hide().fadeIn();
淡入淡出

您可以根据需要分配任意多个数据属性,它们只需以数据开头,例如数据id、数据名称、数据-xxxxxx

指定属性的操作如下所示:

<div class="comments" data-id="xxxxx">

当然,用您想要的任何东西替换xxxxx,例如新的、1个、最后一个


由于您的jquery选择器将选择限制为具有该属性的元素,因此它只会在您想要的注释中隐藏和淡出,因此数据属性可用于各种目的。

我不知道您的注释html结构是什么,但假设注释位于
  • 标记中。如果总是返回所有注释,则使用类标记新注释,例如:
  • 。然后使用jQuery只显示/隐藏/淡出新的。有没有示例如何做到这一点?哪一部分?标记新评论?或者隐藏/淡出新注释?隐藏/淡出新注释
    $('.comments').html(数据)。查找('.new').hide().fadeIn('slow')它再次用于所有评论,而不仅仅是新发布的评论我不知道为什么它不起作用我还没有尝试代码,再添加一个片段,可能会有帮助。谢谢帮助,但仍然没有什么…再次用于所有评论,而不是我想要的新评论我得到了这个,它在我的css中起作用,尝试一下,很抱歉给您带来不便。现在只剩下一件事要做了…向新添加的注释中添加一个不同的类,并从其他元素中删除该类(我知道其他元素没有该类,这将有助于您添加一个注释,因为上一个注释是新的,需要将其变为旧的),在那之前,我会努力找到一个有效的方法。我做到了。仍然没有。看起来comments.php会在发布后返回所有评论。。。替换评论分区中的实际内容,您将需要一种不同的方法,将帖子添加到分区中。。。使用.add()例如$('.comments').add(数据);您当然需要comments.php只返回最后一篇文章。。。在一个隐藏的标记中,这样你就可以淡出它了。这种方法看起来不错……你知道如何修改我的代码来做到这一点吗?你必须修改comments.php结尾的“echo”部分,返回你正在保存的注释的html。我不能告诉你确切的情况,因为你没有发布该文件的代码。