在动态jquery滑块之外调用函数

时间:2012-11-09 18:45:23

标签: php jquery html5 jquery-ui

我正在动态创建我的滑块,在“幻灯片”事件和“停止”事件中,我想调用非动态内容中定义的函数。如果我每次使用滑块创建它们,我可以使函数工作,但这似乎是很多冗余代码?

非动态功能

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

1 个答案:

答案 0 :(得分:1)

我在评论后编辑,所以我的评论不再有意义,$(function(){部分代码不是必需的,请尝试使用:

progress_seconds = converSecondsToMinutes(progress_seconds);

代码中的拼写错误对我来说是一个真正的问题,最后会发生转换。

也没有必要在$(document).ready()中包装你的函数,声明如下:

function convertSecondsToMinutes(secondsEntered)
{
    var time = ...
    ...
}