我有一个代码和代码工作,但声音总是在运行/播放,我希望声音只是一次播放,如果有新的数据条目,但不能。我希望我的朋友可以帮助我。 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();
});
答案 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);
});