rails app中的Jquery UI范围滑块

时间:2011-01-25 10:53:26

标签: jquery jquery-ui

我在时间范围内使用的滑块有一个小问题。

当我移动其中一个处理程序然后第二个处理程序时,第一个处理程序会稍微改变它的值。 (在我的情况下5分钟)

这是我的代码

function slideTime(event, ui){
    var minutes0 = parseInt($("#slider_range").slider("values", 0) % 60);
    var hours0 = parseInt($("#slider_range").slider("values", 0) / 60 % 24);
    var minutes1 = parseInt($("#slider_range").slider("values", 1) % 60);
    var hours1 = parseInt($("#slider_range").slider("values", 1) / 60 % 24);
    $("#log_times_from").val(getTime(hours0, minutes0));
    $("#log_times_to").val(getTime(hours1, minutes1));
}

function getTime(hours, minutes) {
    var time = null;
    minutes = minutes + "";  
    if (minutes.length == 1) {
        minutes = "0" + minutes;
    }
    return hours + ":" + minutes;
}
slideTime();

$(document).ready(function() {
$("#slider_range").slider({
        range: true,
        min: 0,
        max: 1439,
        values: [540, 1020],
        step:5,
        slide: slideTime
    });

})

当我移动另一个时,任何有关处理程序移动的想法?

1 个答案:

答案 0 :(得分:1)

我发现它,通过将它与范围滑块

的jquery UI文档中的代码进行比较

这解决了这个问题。我使用ui.values而不是每次都选择id

function slideTime(event, ui){
    var minutes0 = parseInt(ui.values[ 0 ]  % 60);
    var hours0 = parseInt(ui.values[ 0 ]  / 60 % 24);
    var minutes1 = parseInt(ui.values[ 1 ]  % 60);
    var hours1 = parseInt(ui.values[ 1 ]  / 60 % 24);
    $("#log_times_from").val(getTime(hours0, minutes0));
    $("#log_times_to").val(getTime(hours1, minutes1));
    $("#time").text(getTime(hours0, minutes0) + ' - ' + getTime(hours1, minutes1));
    $("#time1").text(getTime(hours0, minutes0) + ' - ' + getTime(hours1, minutes1));
}

function getTime(hours, minutes) {
    var time = null;
    minutes = minutes + "";  
    if (minutes.length == 1) {
        minutes = "0" + minutes;
    }
    return hours + ":" + minutes;
}

$(document).ready(function() {
$("#slider_range").slider({
        range: true,
        min: 0,
        max: 1439,
        values: [540, 1020],
        step:5,
        slide: slideTime
    });

})