如果有新的数据输入,如何获取通知声音只读取一次

时间:2014-07-20 18:25:53

标签: jquery

我有一个代码和代码工作,但声音总是在运行/播放,我希望声音只是一次播放,如果有新的数据条目,但不能。我希望我的朋友可以帮助我。 thnk

       function notification(){

        $('<audio id="chatAudio"><source src="../sound/notify.ogg" type="audio/ogg"><source 
           src="../sound/notify.mp3" type="audio/mpeg"><source src="../sound/notify.wav" 
           type="audio/wav"></audio>').appendTo('body');

        $.ajax({
            url:"check.php",
            chace: false,
            success: function(data){
                if(data == 0){
                    $(".place").hide();
                }else{
                    $(".place").show("fast");
                    $(".place").html(data);
                    $('#chatAudio')[0].play();
                }
            }
        }).always(function(){
            setTimeout(function(){notification()}, 3000);       
        }); 
    }

$(document).ready(function(){
   notification();
});

1 个答案:

答案 0 :(得分:0)

如果将音频元素的添加移动到notification函数之外,则代码看起来会起作用,因此只会添加一次。我在某种程度上重构了你的代码,它应该按预期工作。只要确保在没有新通知的情况下PHP返回0。另外我不确定chace在你的JS中意味着什么?

       function notification(){
        $.ajax({
            url:"check.php",
            chace: false,  //<-- Not sure what this is meant to be?!
            success: function(data){
                if(data == 0){
                    $(".place").hide();
                }else{
                    $(".place").show("fast");
                    $(".place").html(data);
                    $('#chatAudio')[0].play();
                }
            }
        }); 
    }

$(document).ready(function(){
   $('<audio id="chatAudio"><source src="../sound/notify.ogg" type="audio/ogg"><source 
           src="../sound/notify.mp3" type="audio/mpeg"><source src="../sound/notify.wav" 
           type="audio/wav"></audio>').appendTo('body');

   var notificationInterval = setInterval(function(){notification();}, 3000);
});