2011-12-19 31 views
0

我正在嘗試編寫一個頁面,其中包含多個<audio>標籤,並且頁面加載需要永久(我有大約30個音頻剪輯)。我看到了一個解決辦法是離開src=""空的,當你點擊一個鏈接,然後動態填充...音頻標籤,點擊鏈接時添加src?

http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/

我snytax是錯誤的,但它必須做兩件事情是單擊按鈕時。它必須通過填充src然後播放剪輯來加載視頻。我想下面的代碼將工作:

document.getElementById('1')[0].src = '1.aif';.play() 

回答

1

語句被單獨執行,所以.play()不元素上執行。這是無效的,因爲聲明不能以.開頭。

你似乎想什麼是 「鏈接式」(在一個聲明中優雅的執行幾件事情),它的jQuery,您可以使用:

$("#1").attr("src", "1.aif").play(); 

還是在純JavaScript:

var elem = document.getElementById('1'); // returns one element, not an array 
elem.src = '1.aif'; 
elem.play(); 
+0

我注意到你可以使用純Javascript內聯,但使用jQuery沒有效果(我甚至改變了「to」,當然在頭上有jQ)它不應該工作嗎? – Charlie 2011-12-19 21:18:01

+0

@Charlie :嚴格地說,'elem.src'是設置一個屬性,你可以試試'.prop'而不是'.attr'? – pimvdb 2011-12-19 21:19:45

1

您的問題是:

  1. getElementById返回給定的元素個唯一標識符,而不是一個NodeList(因此[0]將不起作用,因爲沒有0屬性)
  2. 您的第二條語句試圖在沒有任何情況下調用play。你需要的東西之前,.

你可能想剛纔設置preload="none",而不是試圖動態地設置src

+0

由於'