Jquery UI range silder in rails app -
i have small problem slider use time range.
when move 1 of handlers , second first 1 changes it's value tiny bit. (5 min in case)
here's code
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 }); })
any ideas on why handlers move when move other?
i found it, compering code in jqueryui documentation range slider
this solves problem. use ui.values instead of selecting id everytime
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 }); })
Comments
Post a Comment