jQueryUI元素准备好设置值

时间:2018-09-01 10:02:49

标签: javascript jquery jquery-ui

我使用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]);

在构建滑块时在控制台中-它可以工作。

可能是因为$(document).ready事件中jQueryUI元素尚未准备就绪,或者某些脚本尚未执行。

如何解决此问题并将http get中的值放入?

0 个答案:

没有答案