我正在动态创建我的滑块,在“幻灯片”事件和“停止”事件中,我想调用非动态内容中定义的函数。如果我每次使用滑块创建它们,我可以使函数工作,但这似乎是很多冗余代码?
非动态功能
$(document).ready(function() {
var converSecondsToMinutes;
convertSecondsToMinutes = function(secondsEntered){
var secondsEntered = secondsEntered;
var time = parseInt(secondsEntered,10);
time = time < 0 ? 0 : time;
var minutes = Math.floor(time / 60);
var seconds = time % 60;
minutes = minutes < 9 ? "0"+minutes : minutes;
seconds = seconds < 9 ? "0"+seconds : seconds;
var newTime = minutes+":"+seconds
console.log(newTime);
return newTime
}
});
动态jQuery滑块
<?php
query...
result...
for(...){
?>
<Script>
$( "#slider"+<?php echo $id; ?> ).slider({
animate: true ,
value: 0,
min: 0,
//dynamic grab this
max: <?php echo $playtime_seconds; ?>,
step: 0.01,
start: function( event, ui ) {
....
},
slide: function( event, ui ) {
audio = ....
audio.currentTime = ui.value;
progress_seconds = parseFloat(audio.currentTime.toFixed(2));
progress_seconds = $(function(){convertSecondsToMinutes(progress_seconds);});
$('#progress_seconds'+<?php echo $id; ?>).html(progress_seconds);
},
stop: function( event, ui ) {
....
}
}
});
});
}
我剪切并粘贴了对问题很重要的代码部分。
这是不起作用的行:$('#progress_seconds'+)。html(progress_seconds);
答案 0 :(得分:1)
我在评论后编辑,所以我的评论不再有意义,$(function(){部分代码不是必需的,请尝试使用:
progress_seconds = converSecondsToMinutes(progress_seconds);
代码中的拼写错误对我来说是一个真正的问题,最后会发生转换。
也没有必要在$(document).ready()中包装你的函数,声明如下:
function convertSecondsToMinutes(secondsEntered)
{
var time = ...
...
}