2016-09-10 2 views
1

Я создал аудиоплеер html5 с ограниченной функцией цикла, но мне не удается сохранить эту функциональность, когда я хочу заменить аудиоплеер кнопками и добавить к ним обработчик событий. В этом примере флажок должен быть проверен, и необходимо выбрать вторую опцию selectmenu, прежде чем повторять функцию. Как-то функция repeat перестает работать, когда я добавляю: «document.getElementById (« Play »). AddEventListener (« click », myFunction);». Если я удалю его, код работает, но только тогда, когда я сам использую сам аудиоплеер html. Мой код:html5 audio addeventhandler

<!DOCTYPE html> 
<html> 
<body> 

<span style="font-family:arial; font-size:16px;"><b>Pre:</b></span> 
<input id="precount" type="checkbox"><br><br> 
<span style="font-family:arial; font-size:16px;"><b>Repeat:</b></span> 
<select> 
<option id="ok1">1x</option> 
<option id="ok2">2x</option> 
<option id="ok3">3x</option> 
</select><br><br> 

<audio id="myAudio" controls> 
<source src="http://u1259p183.web0080.zxcs.nl/jQuery.mmenu-master/demo/sortablemenumobile/range_items/audio_notes/10_a.mp3"> 
</audio> 

<script> 
function PlaySound(soundobj) { 
var thissound=document.getElementById(soundobj); 
thissound.play(); 
} 
function PauseSound(soundobj) { 
var thissound=document.getElementById(soundobj); 
thissound.pause(); 
} 
</script> 

<form> 
<input type="button" value="PlaySound" id="Play"> 
<input type="button" value="PauseSound" id="Pause"> 
</form> 


<script> 

document.getElementById("Play").addEventListener("click", function); 
var loopLimit = 2; 
var loopCounter = 0; 
var aud = document.getElementById("myAudio"); 
aud.onended = function() { 
if ((loopCounter < loopLimit) && (document.getElementById("ok2").selected==true) &&(document.getElementById("precount").checked==true)){ 
this.currentTime = 0; 
this.play(); 
loopCounter++; 
} 
}; 
</script> 

</body> 
</html> 
+0

Любой синтаксис в консоли? – Rayon

+0

'.addEventListener (« click », function);' это синтаксическая ошибка, вы не можете использовать ключевое слово 'function' там, как это, если вы не сделаете определение функции, то есть' function() {} ' –

ответ

0

Изменение линии с слушателя событий, и поставить определения переменных перед ним: ошибка

var aud = document.getElementById("myAudio"); 
var loopLimit = 2; 
var loopCounter = 0; 
document.getElementById("Play").addEventListener("click", function(){ 
    loopCounter = 0; 
    aud.play(); 
}); 
+0

Отлично! Вы также знаете, как я могу избежать того, что переменная теряет значение после использования этого скрипта? –

+0

Какая переменная? Я не вижу, что потеряно. – ban17

+0

, если я нажму кнопку воспроизведения, он хорошо повторяет звук дважды, но когда я снова это сделаю, он больше не повторяется. –