2011-01-25 55 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 
    }); 

})