web-dev-qa-db-fra.com

HTML5 Audio et jQuery

J'essaie d'utiliser un bouton pour démarrer une piste dans une balise audio HTML5 en utilisant jQuery, mais je reçois toujours une erreur.

var song = $('#audio');

$('#play').click(function() {
song.play();
});

Lorsque j'utilise document.getElementById ('audio'), cela fonctionne, mais lorsque j'utilise le sélecteur jQuery, j'obtiens l'erreur suivante:

TypeError non intercepté: l'objet [objet objet] n'a pas de méthode 'play'

Merci pour toute aide.

27
user699242

Essayez d'obtenir l'élément DOM natif car jQuery ne sait rien de la méthode .play Sur le tableau encapsulé renvoyé par le sélecteur $('#audio'):

song.get(0).play();
59
Darin Dimitrov

Vous pouvez également l'écrire comme song.trigger('play');. Cela vous permettra d'utiliser le sélecteur $('#audio');.

13
Cole Garstin

Au lieu de .get (), utilisez simplement la notation objet:

var song = $('#audio');

$('#play').click(function() {
    song[0].play();
});

C'est moins de taper :)

3
sidonaldson