2013-04-08 25 views
7

jQuery ile çalışmak için ses almakta zorlanıyorum. Bunu hem .wav hem de .ogg formatlarıyla denedim. (Firefox 19.0.2)jQuery ile nasıl bir ses dosyası yürütürüm?

tıklandığında Başlat düğme verimleri: Ben yakalama hem ses dosyası denedim

TypeError: buzzer.play is not a function

jQuery seçiciler bir dizi döndürür emin değilim ama:

var buzzer = $('buzzer'); 

ve

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

regardles s, ses öğelerini oynatamıyorum.

<!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 &#60;audio&#62; 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

Neden formu bir başlangıç ​​düğmesi olarak kullanırsınız? – adeneo

+0

Gerçekten 'document.getElementById ('buzzer')' yi kullanmalısınız. * Aslında * jQuery-sarılı elemanlarını kullanmıyorsunuz, sadece yerel dom elemanını almak için uzun yol alıyorsunuz. – meagar

cevap

13

Sen Kimlik seçicideki karma # unuttu:

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

$(document).on('submit', '#sample', function() {  
    buzzer.play();  
    return false;  
});  

Ve document.getElementById('buzzer') daha uygun görünüyor!

ben için HTML değiştirmek istiyorum:

<audio id="buzzer" src="buzzer.ogg" type="audio/ogg"></audio>  
<input type="button" value="Start" id="start" /> 

ve yapın:

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

Ve id buzzer ise:

$('#start').on('click', function() { 
    $('#buzzer').get(0).play(); 
}); 
+0

Veya '$ ('# buzzer') [0] .play();' güzel bir 'event.preventDefault(); ' –

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

Ayrıca yapabilirsiniz benzersiz (Olması gerektiği gibi) ayrıca bunu yapabilirsiniz - Kendi HTML ses etiketi işaretlemek için id kullanırken [0]

var buzzer = $('#buzzer'); 
+1

' document.getElementById ("buzzer"); 've btw zaten @adeneo tarafından önerildi –

+0

@roXon .. true .... –

+0

Düzenlemenizden sonra bile sizin tarafınızdan önerildiği gibi çalışmayacaksınız, 'Eleman' yerine 'Elements' ' –

0

ihtiyacı yok. Yani, seçiciyi kullandığınızda # eklemelisiniz.

var buzzer = $('#buzzer'); 

eklemek gerekmez [0], [0] seni kastediyor :

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

, size ses tanımlamak için id kullanırken, ayrıca senin değerli böyle tanımlayabiliriz ilk elemanı al.

İlgili konular