2012-06-14 77 views
0

我試圖創建一個按鈕,當點擊播放音頻文件,然後再次單擊播放數組中的下一個文件時。我可以播放它,但是當我第二次播放第一個文件和第二個文件時單擊它。當我第三次按下它時,它會播放第一,第二和第三。似乎我需要重置某些內容或其他以清除頁面的前兩個軌道。以下是我有:在javascript數組中播放音頻文件時遇到問題

<!DOCTYPE HTML> 
    <html> 
    <head> 
    </head> 
    <body> 

    <script language="javascript" type="text/javascript"> 

     audio = new Array('audio1.mp3','audio2.mp3','audio3.mp3'); 
     index = 0; 

     function playSound() { 
     if(index<3){ 
     document.getElementById("start").innerHTML=document.getElementById("start").innerHTML + 
     "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
     index++; 
     } 
     else{ index = 0; 
     document.getElementById("start").innerHTML=document.getElementById("start").innerHTML + 
     "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
     index++; 
     } 



    } 

    </script> 

       <button id="start" type = "button" onclick="playSound();">Start</button> 

    </body> 

</html> 

回答

1
function playSound() { 
    if(index>=3){ 
     index = 0; 
    } 
    document.getElementById("sound").innerHTML= 
    "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
    index++; 
} 

,並添加一個DIV(其中U可以用CSS使隱藏的爲好),我認爲這比添加HTML的按鈕更好的辦法。

<button id="start" type = "button" onclick="playSound();">Start</button> 
<div id="sound" style="display:none"></div> 
+0

我該如何接受答案,對不起,我還在學習!我嘗試了你的答案,它解決了同時播放多個文件的問題,但是按鈕本身丟失了文本並且大小減半。感謝您的回覆,謝謝! –

+0

啊,這是因爲你將隱藏的嵌入元素添加到按鈕。我會編輯我的答案來解決這個問題。您可以通過按我答案左側的V thingy來接受我的答案。 – Anonymous

+0

好的,我現在已經接受了,感謝您的信息。我創建了一個div,並將其添加到該代碼中。它沒有改變按鈕,但只是推遲了它。我想我必須找到一種更好地隱藏div的方法。但必須有更好的方法。我會繼續嘗試!再次感謝! –

1

您不斷增加越來越多的<embed>元素,而不會刪除任何人。

而不是將它們追加到按鈕,將它們附加到一個容器,然後刪除它們,然後添加另一個。

+0

恭喜34,343! – Ryan

+0

我試過了,但陷入了一片混亂。正如你可能已經猜到,我仍然是一個JavaScript的初學者。我如何刪除嵌入的元素?我發現這個:element = document.getElementById(「element-id」);但似乎沒有工作。我推測你必須添加一個id到嵌入元素,但我想也許這是錯誤的。我知道很多,我知道哈哈。謝謝你的幫助。 element.parentNode.removeChild(element); –