只播放一次Jquery声音

时间:2013-04-11 14:11:41

标签: jquery audio hover playback

我正在尝试实现这样的效果,在悬停在图像上时,播放声音,我希望声音只播放一次,意味着在初始悬停之后,随后的悬停不会触发声音播放现在我正在尝试这个代码,但它不起作用

$(document).ready(function(){

$("#bg")[0].play();

var pring = 0;

$(function(){
$('#apDiv5').hover(
 function(){$("#phone")[0].play();},
 function(){$("#phone")[0].stop();
 pring++;
 if (pring > 1) {function(){$("#phone")[0].stop();}
 }});


});

});

3 个答案:

答案 0 :(得分:2)

$('#apDiv5').one('hover', function() {

这会使您的悬停事件只发生一次。

答案 1 :(得分:1)

试试这个。 http://jsfiddle.net/WAeQU/ 使用jQuery off如果小提琴不起作用,它至少应该让你继续前进。

答案 2 :(得分:1)

您可以随时为播放音频的元素添加一个特殊类,并测试它已经具有该类:

LIVE DEMO

$(function(){

   function playOnHover(el, audioFile){      
      $(el).addClass('played');
      var sound = new Audio( audioFile );   
      sound.play();      
   }

   $('#apDiv5').on('mouseenter', function(){
      if(!$(this).hasClass('played')) playOnHover( this, "sound.ogg" );
   });

});