我一直在为一个网站设计一个简单的音频播放器。我只想让它有玩和停的能力。我让它工作,以便它将发挥,设置它的播放不能重叠通过解除选择器。在它完成后,我想再次绑定选择器。它似乎不起作用。也许我只是不明白绑定和解除绑定应该放在哪里。
function playMusic(){
var audioElement = document.createElement('audio');
var audioElementSrc = $(this).attr('data-audio-src');
audioElement.setAttribute('src', audioElementSrc);
$.get();
audioElement.addEventListener("loadeddata", function(){
audioElement.play();
}, true);
$('.pause').click(function() {
audioElement.pause();
});
audioElement.addEventListener("playing", function(){
$('.play').unbind('click');
});
audioElement.addEventListener("ended", function(){
$('.play').bind('click');
});
}
$(function(e){
$('.play').click(playMusic);
});发布于 2014-10-08 14:42:16
问题是,当您重新绑定事件时,没有将任何侦听器传递给绑定。您必须显式地指向要再次调用的函数。暂停事件也没有重新绑定。
看看这把小提琴:http://jsfiddle.net/kfkszwr1/1/
我添加了以下事件侦听器:
audioElement.addEventListener("pause", rebind);
audioElement.addEventListener("ended", rebind);发布于 2014-10-08 15:50:12
这并不能回答您当前的问题,但是如果您希望使用更有效的方法,则会帮助您使用数据元素。
使用jQuery数据元素设置布尔变量:
$('#data_div').data("isPlaying", true);使用jQuery数据元素检索布尔变量:
var isPlaying = $('#data_div').data("isPlaying");只需确保页面上有一个id为"data_div“的div。
发布于 2014-10-09 01:00:20
var isPlaying = false;
function playMusic(){
var audioElement = document.createElement('audio');
var audioElementSrc = $(this).attr('data-audio-src');
if (isPlaying != true)
{
isPlaying = true;
audioElement.setAttribute('src', audioElementSrc);
$.get();
audioElement.addEventListener("loadeddata", function(){
audioElement.play();
}, true);
audioElement.addEventListener("ended", function() {
isPlaying = false;
});
$('.pause').click(function() {
audioElement.pause();
isPlaying = false
});
}
else
{
return false;
}
}
$(function(e){
$('.play').click(playMusic);https://stackoverflow.com/questions/26259630
复制相似问题