Я использую ползунок диапазона jQueryUI, который описан там:
https://jqueryui.com/slider/#range
Существует одна функция JavaScript:
<script>
$( function() {
$( "#slider-range" ).slider({
range: true,
min: 0,
max: 500,
values: [ 75, 300 ],
slide: function( event, ui ) {
$( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
}
});
$( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
" - $" + $( "#slider-range" ).slider( "values", 1 ) );
});
</script>
Когда документ готов, я использую метод http get для получения значений в диапазоне ползунков, а затем помещаю их в этот элемент, используя функцию из документации:
$(document).ready(function() {
restFunction();
});
function restFunction() {
var urlParam = "myUrl";
var urlParamEncode = encodeURI(urlParam);
jQuery.ajax({
url: urlParamEncode,
type: "GET",
dataType: "json",
async: false,
xhrFields: {
withCredentials: true
},
success: function(resp) {
if(resp) {
$('#mySingleSelect').val(resp.toMySingleSelect);
$('#slider-range').slider('option', 'values', [resp.startRange, resp.endRange]);
}
}
});
}
Значение правильно передается в элемент mySingleSelect
, но есть проблема с slider-range
- передача значений не работает.
В консоли нет ошибок.
Если я поставлю ту же функцию
$('#slider-range').slider('option', 'values', [resp.startRange, resp.endRange]);
в консоли при построении слайдера - работает.
Вероятно, это связано с тем, что элемент jQueryUI не готов к событию $(document).ready
или некоторые сценарии еще не выполнены.
Как можно решить эту проблему и поставить значения из http get?