This question already has answers here:
Is a jquery callback available after .play() when using <audio>?
                                
                                    (4个答案)
                                
                        
                                2年前关闭。
            
                    
我想在播放音频文件时更改div的背景颜色,然后在不播放音频时将其更改回原始颜色。



$('.uprow2').on('click', function() {
  $('#karma')[0].play();
});

.uprow2 {
  width: 680px;
  height: 60px;
  background: #000000;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="uprow2">
  <p class="song">LISTEN - KARMA POLICE</p>
</div>





任何帮助,将不胜感激。

谢谢!

最佳答案

为此,最好直接使用audio元素上的事件。这样,状态不会被钩到按钮上,并且如果用户通过播放器控件更改了音频文件的播放状态,则状态仍将起作用。尝试这个:

$('#karma').on('playing', function() {
  $('.uprow2').addClass('playing');
}).on('ended pause suspend error', function() {
  $('.uprow2').removeClass('playing');
});


Working example

10-05 21:03
查看更多