1

我正在尝试实现这样的目标,将鼠标悬停在图像上时,会播放声音,并且我希望声音只播放一次,这意味着在初始悬停后,随后的悬停将不再触发声音播放,目前我正在尝试这段代码,但它不起作用

$(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();}
 }});


});

});
4

3 回答 3

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

This will make your hover event occur only once.

于 2013-04-11T14:13:13.210 回答
1

尝试这个。http://jsfiddle.net/WAeQU/ 使用 jQueryoff如果小提琴不起作用,它至少应该让你上路。

于 2013-04-11T14:25:12.900 回答
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" );
   });

});
于 2013-04-11T15:22:47.063 回答