将 jquery 滑块绑定到 dom

bind a jquery slider to the dom

我在网页的 ajax 部分有一个 jquery UI 滑块。如果我使用 ajax 重新加载此部分,则滑块会消失。我想我需要将滑块附加到 DOM,但看起来它需要附加一个事件,例如:

$(".radio").on("click", function () {

但我不知道我需要在那里附加哪种事件?

感谢

当前 html:

$(function() {
  var handle = $("#custom-handle");
  $("#custom-handle").text(sizes[0].value);
  $("#slider").slider({
    create: function() {},
    min: 0,
    max: sizes.length - 1,
    step: 1,
    slide: function(event, ui) {
      handle.text(sizes[ui.value].value);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<div id="slider">
  <div id="custom-handle" class="ui-slider-handle"></div>
  <br>
</div>

I've got a jquery ui slider in an ajax part of my webpage. if I'm reloading this part with ajax, the slider disappears.

您要替换 ajax 中的滑块 HTML 代码吗?也就是说,你要替换这个 div?

<div id="slider">
  <div id="custom-handle" class="ui-slider-handle"></div>
  <br>
</div>

如果是这样,那么我认为问题不在于绑定...您是否尝试过在 ajax 调用完成后重新初始化滑块?

$.ajax({
    type: 'post',
    url: 'some url',
    success: function(data) {                       
        initializeSlider();
    }
});      

function initializeSlider() {
    $("#slider").slider({
        create: function() {},
        min: 0,
        max: sizes.length - 1,
        step: 1,
        slide: function(event, ui) {
            handle.text(sizes[ui.value].value);
        }
    });
}