Как воспроизвести аудиофайл с помощью jQuery?

мне трудно получить аудио для работы с jQuery. Я пробовала .wav and .форматы ogg. (Firefox 19.0.2)

нажатием старт кнопка дает:

ошибку TypeError: зуммер.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>  

3 ответов


ты забыл хэш # в свой 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();
});

var buzzer = document.getElementById("buzzer");

вы также можете сделать это:

var buzzer = $('audio')[0]; 

и если id buzzer - Это уникальная (как надо) вы также можете сделать это - не надо [0]

var buzzer = $('#buzzer');

вы используете идентификатор, чтобы пометить свой звуковой тег в HTML. Таким образом, вы должны добавить#, когда используете селектор.

var buzzer = $('#buzzer')[0]; 

кроме того, вы используете id для идентификации Вашего аудио, вы также можете определить свою ценность следующим образом:

var buzzer = $('#buzzer');

не добавлять [0],[0] означает, что вы получаете первый элемент.