我使用Joomla创建网站,这个网站将有一个部分可以提供一些轨道预览。到目前为止,我已经设法创建元素并单独播放每个元素。但是现在我尝试创建一个函数,根据播放位置增加Div的宽度,由于PHP上的动态创建,我需要创建一个动态函数来放大这个div,这里&#39我所拥有的并不起作用。
<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>
这是创建播放器的php
然后我在jQuery(document).ready(
函数之外创建了一个小函数。
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),但当我要求确认他找到了正确的&#34; chargebar&#34; Div(currDiv
)的答案是undifined
答案 0 :(得分: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属性。