0

Facebookに似たコメントシステムで使用される次のjqueryおよびphpコードがあります。

ユーザーがコメントを入力して投稿します。投稿されたコメントが見栄えよく表示されるように、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

コメントが更新される順序がわかりません (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');

より簡単にするために、 :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 に答える