试图创建一个准时更新功能

时间:2017-05-26 16:09:15

标签: javascript php jquery html

我使用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

1 个答案:

答案 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属性。