我很难让音频与jQuery一起工作。我用.wav和.ogg格式试过这个。 (Firefox 19.0.2)
单击开始按钮会产生:
TypeError:buzzer.play不是函数
我不确定jQuery选择器是否返回一个数组,但我尝试用两者捕获音频文件:
var buzzer = $('buzzer');
和
var buzzer = $('buzzer')[0];
无论如何,我无法播放音频元素。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
<audio id="buzzer" src="buzzer.ogg" type="audio/ogg">Your browser does not support the <audio> element.</audio>
<form id='sample' action="#" data-ajax="false">
<fieldset>
<input value="Start" type="submit">
</fieldset>
</form>
<script type="text/javascript">
var buzzer = $('buzzer')[0];
$(document).on('submit', '#sample', function() {
buzzer.play();
return false;
});
</script>
</body>
</html>
答案 0 :(得分:13)
您忘记了ID选择器中的哈希#
:
var buzzer = $('#buzzer')[0];
$(document).on('submit', '#sample', function() {
buzzer.play();
return false;
});
document.getElementById('buzzer')
看起来更合适!
我将HTML更改为:
<audio id="buzzer" src="buzzer.ogg" type="audio/ogg"></audio>
<input type="button" value="Start" id="start" />
并且做:
$('#start').on('click', function() {
$('#buzzer').get(0).play();
});
答案 1 :(得分:0)
var buzzer = document.getElementById("buzzer");
你也可以这样做:
var buzzer = $('audio')[0];
如果ID buzzer
是唯一的(它应该),您也可以这样做 - 不需要[0]
var buzzer = $('#buzzer');
答案 2 :(得分:0)
您正在使用ID在HTML中标记音频标记。因此,您应该在使用选择器时添加#。
var buzzer = $('#buzzer')[0];
此外,您使用id来识别您的音频,您也可以像这样定义您的有价值:
var buzzer = $('#buzzer');
不必添加[0],[0]意味着你得到第一个元素。