سؤال

I have sound clip registered in html:

<audio class="aaa" id="sss"><source src="url/sound.wav"/></audio>
<script type="text/javascript">var sss = document.getElementById("sss"); sss.volume='0.1';</script>

This sound can be played with mouseenter event on the certain div:

$('#divid').mouseenter(function () {
    $(sss.play());
});

How can this be achieved with audio class instead of id?

edit: solved

هل كانت مفيدة؟

المحلول

.play() is a method of the HTMLAudioElement object not the jQuery object, jQuery wrapper doesn't do anything here, as you are passing retuned value of the .play() method to it, you can select the element(s) using jQuery, gets DOM element object(s) from the collection and call the .play() method on it:

$('audio.aaa').get(0).play(); // works for the first matched element in the collection

If there are several elements, you can iterate through the collection using .each() method:

$('audio.aaa').each(function() {
   // `this` keyword here refers the HTMLAudioElements
   this.foo();
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top