0

我有以下 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>    

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

4

2 回答 2

0

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

如果您的新评论首先出现,请使用

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

否则使用

$(".comments:last-child").html(data).hide().fadeIn('slow');

为了更方便,您可以使用 :first使用 .first()查看这些教程

于 2013-08-16T11:48:00.907 回答
0

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

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

淡入淡出。

您可以根据需要分配任意数量的 data- 属性,它们只需以 data- 开头,例如 data-id、data-name、data-xxxxxx。

分配属性是这样完成的:

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

当然,用你想要的任何东西替换 xxxxx,例如 new、1、last...

由于您的 jquery 选择器将选择限制为具有该属性的元素,它只会在您想要的评论中隐藏和淡入淡出,因此 data- 属性可用于多种用途。

于 2013-08-16T11:54:53.903 回答