2011-01-25 54 views
0

我用于时间范围的滑块有一个小问题。在rails应用程序中的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

我发现了它,被它compering到jQueryUI的文档中的代码范围滑块

这解决了问题。我使用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 
    }); 

})