0

単純に、CSS によって作成され、HTML の SPAN クラスによって実装されたアニメーション通知バッジを含むメニュー バーがあります。このバッジには新しいメッセージの数が表示され、その数が 0 の場合は消えます。1 秒ごとに確認する必要がありますが、うまくいきません。

私のjs:

<script type="text/javascript">
function removeAnimation(){
setTimeout(function() {
$('.bubble').removeClass('animating')
}, 200);            
}

setInterval(function() {
$.ajax({
    type: 'GET',
    url:  'models/bubble.php',
    data: 'html',
    success: function(response){
    document.getElementById("bub").innerHTML=response;
    document.getElementById("bub").className = "bubble";
    }
    error: function(response) {
    document.getElementById("bub").className = "hidden";
    });
}
}, 1000);
</script>

私のphp(動作およびテスト済み):

<?php
require_once("db.php");
$receiver = $this_user
$isnew = 1;
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT * FROM messenger
    WHERE receiver = ? AND isnew = ? ORDER BY timestamp")) {
    $stmt->bind_param("si", $receiver,$isnew);
    $stmt->execute();
    $stmt->store_result();
    $ttlrows = $stmt->num_rows;
    $stmt->close();
}
echo $ttlrows;
?>

助けはありますか?

4

1 に答える 1

0

以下は私のために働きます。setTimeout/setInterval は、言及した遅延の後に関数を 1 回だけ呼び出すため、成功内の関数を再度呼び出す必要があります。

setTimeout('pullNewMessageCount()', 100);


 function pullNewMessageCount() {
  var url = 'PHP Url';
  $.ajax({
    url: url,
    dataType: 'html',
    data:{
      "whatever data you want to send, skip it if not require",
    },
    type: 'POST',
    success: function(latestCount) {
      setTimeout('pullNewMessageCount()', 100);// Important comment (this what you need to do)
    },
    error: function(jqXHR, textStatus, errorThrown) {
    }
  });
}
于 2013-05-18T08:15:23.960 に答える