0

我正在动态创建我的滑块,并且在“Slide”事件和“Stop”事件中我想调用一个在非动态内容中定义的函数。如果我每次都使用滑块创建它们,我可以让这些功能正常工作,但这似乎有很多冗余代码?

非动态函数

    $(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);

4

1 回答 1

1

您在我发表评论后进行了编辑,因此我的评论不再有意义,您的代码的 $(function(){ 部分不是必需的,请尝试使用:

progress_seconds = converSecondsToMinutes(progress_seconds);

代码中的拼写错误对我来说是一个真正的问题,conver 在最后。

也不需要将你的函数包装在 $(document).ready() 中,像这样声明它:

function convertSecondsToMinutes(secondsEntered)
{
    var time = ...
    ...
}
于 2012-11-09T18:55:46.910 回答