2017-05-26 20 views
1

我使用Joomla創建一個網站,這個網站將有一個部分,一些軌道預覽將可用。到目前爲止,我已經設法創建了這些元素並分別播放每一個元素。但現在我試圖創建一個函數,根據播放位置增加Div的寬度,由於PHP上的動態創建,我需要創建一個動態函數來放大這個div,這裏是我所擁有的不起作用。試圖創建一個準時更新功能

<audio preload="metadata" id="<?php echo $videoid; ?>" class="preview play" ontimeupdate='updateTrackTime(this);'> 
     <source src="<?php echo $video; ?>" type="audio/mp3"/> 
</audio> 
<div class="player play"> 
    <div id="<?php echo $videoid; ?>play" class="chargebar"></div> 
</div> 

這是創建然後我創建了jQuery(document).ready(功能外的一個小功能的播放器 的PHP。

function updateTrackTime(track){ 
    var perc = Math.floor((track.currentTime/track.duration)*100).toString()+'%'; 
    var currTime = perc; 
    var trackid = jQuery(event.target).attr('id'); 
    trackid = trackid+'play'; 
    var currDiv = jQuery(trackid); 
    perc = 'width : '+perc; 
    if (currTime == '2%'){ 
     alert(trackid); 
     alert(currDiv.attr('id')); 
    } 
} 

正如您所看到的,我正在嘗試調試該事情以瞭解發生了什麼。 的trackid回答正確(爲例:HVOHfDJSOBRM),但是當我問他找到了正確的「chargebar」股利確認(currDiv)的答案是undifined

回答

0

的問題是,你忘了一個#添加到您的參數爲jQuery,表示您要選擇ID爲trackid的元素。 More information

變化

var currDiv = jQuery(trackid); 

var currDiv = jQuery('#' + trackid); 

這應該修復它。

另一個說明:你使用var trackid = jQuery(event.target).attr('id');而變量event沒有定義任何地方(至少不是你在這裏顯示的代碼中)。顯然它適用於您,但我建議您將其更改爲var trackid = track.id;,它只是從觸發時間更新的軌道讀取ID屬性。