2011-12-19 43 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

由于'