2012-08-08 111 views
2

我的標記HTML5音頻都沒法玩

這jQuery代碼

不斷給每一個我按下播放

<div class = "container"> 
    <legend><strong>Zedd - Spectrum</legend></h4> 
    <div class = "art-item"><img src="uploads/arts/default.jpg"></div> 
     <audio class = "audio-player" src = "uploads/tracks/02 So Far.mp3"> 
     </audio> 

      <div class = "playerContainer"> 

       <ul id = "playerControls" > 
        <li class = "play-bt"></li> 
        <li class = "pause-bt"></li> 
        <li><div class ="progressContainer"><!-- Progess bars container //--> 
         <div class ="progressbar"></div> 
        </div> 
        </li> 

       </ul> 
       <span class ="timecode">0:00</span> 
      </div> 
</div> 


<div class = "container"> 
    <legend><strong>Zedd - Spectrum</legend></h4> 
    <div class = "art-item"><img src="uploads/arts/default.jpg"></div> 
     <audio class = "audio-player" src = "uploads/tracks/track3.mp3"> 
     </audio> 

      <div class = "playerContainer"> 

       <ul id = "playerControls" > 
        <li class = "play-bt"></li> 
        <li class = "pause-bt"></li> 
        <li><div class ="progressContainer"><!-- Progess bars container //--> 
         <div class ="progressbar"></div> 
        </div> 
        </li> 

       </ul> 
       <span class ="timecode">0:00</span> 
      </div> 
</div> 

每次時間我的錯誤,我點擊播放,BT它不斷給我這個錯誤

Uncaught TypeError: Object #<Object> has no method 'play' 

是不是音頻標籤有播放的方法?

+0

只需添加別人的話,就可以嘗試從web服務器提供包含媒體播放器的html頁面。 – Gandalf 2012-08-08 12:48:25

回答

6

jQuery的.find()回報jQuery object,不是原生HTMLAudioElement,所以你需要通過.find()返回unwrap the value

$artItem.find('audio')[0].play(); 
// or 
$artItem.find('audio').get(0).play(); 
+0

如果我有2個音頻播放器,怎麼辦?但它在不同的容器? – user962206 2012-08-08 12:48:02

+0

@rlemon你是什麼意思? – user962206 2012-08-08 12:49:43

+0

@ user962206我不太關注。也許你可以編輯你的問題來顯示你實際使用的標記。 – 2012-08-08 12:50:10

1

您訪問的jQuery,而不是普通的DOM標籤這裏 所以嘗試:

$artItem.find("audio")[0].play()