0

私はコメントシステムに取り組んでおり、jQuery でうまくいきましたが、問題があります。2000 ミリ秒 (2 秒) ごとに DB をフェッチするようにしました。ここに問題があります。ユーザーが「コメントを報告」をクリックすると、メッセージ付きの別の div が表示されますが、2 秒後には消えます。setInterval がコンテンツを更新しているためだと思います。

しかし、これが私がやったことです。

注: コードのこの部分を PHP の while() 関数内に配置して、他のすべてのコメントとループするようにし、それらに uniqueID を割り当てました。

<script type="test/javascript">
    $("#<?= $lc['uniqueid']; ?>").click(function() {
        $("#report<?= $lc['uniqueid']; ?>").fadeIn();
    });
</script>

そして、これがコンテンツextを更新するスクリプトです(ちなみに、私のWebページの下部にあります)

setInterval(function() {
    $.get('serverinfo.php?showcomments=<?= $id; ?>', function(data) {
        $('#showcomments').html(data);
    });
}, 2000);

したがって、ユーザーがレポートをクリックして削除するときに表示される div を無視する方法を誰かが知っていれば、それを感謝します! ありがとうございました。

4

1 に答える 1

0

考えられる解決策は、コンテンツの条件付き更新です。つまり、ユーザーが「コメントを報告」をクリックすると、行が追加されます

$('#showcomments').addClass("comment-active");

次に、更新を条件付きにします。

setInterval(function () {
    $.get('serverinfo.php?showcomments=<?= $id; ?>', function (data) {

        if (!$('#showcomments').hasClass("comment-active")) {
            $('#showcomments').html(data);
        }

    });
}, 2000);

そしてもちろん、レポートコメントが閉じられたときにクラスを削除します。

$('#showcomments').removeClass("comment-active");
于 2013-05-07T20:00:53.450 に答える