事件未在 JQuery ui 滑块中触发

Events are not firing in JQuery ui Slider

我正在尝试使用 jquery-ui 滑块,但所有事件都没有触发(我测试了 changeslide 事件),我尝试通过 bind() 绑定事件,但没有任何反应,这是我的代码:

HTML

<div class="widget-content-range">                              
    <input class="passangers_range" value="0;5" name="passangers_range" />
</div>

JAVASCRIPT

$(".passangers_range").slider({
    from:1,
    to:5,
    step:1,
    dimension:'',
    slide: function(event, ui) {
        console.log(ui.value);
    },
    change: function(event, ui) {
        console.log(ui.value);
    }
});

请有任何想法。

我终于明白了,原来我还有另一个脚本(jquery.slider.min - jquery slider plugin) 它覆盖了 jquery-ui 框架的 slider() 函数,它使用 callback() 函数来检测滑块的值变化。

非常感谢

这对我来说很好。

jQuery(".passangers_range").on("change", function(event,ui) {
    console.log(event.value.newValue);
});

我遇到了类似的问题(滑块更改输入字段值时未触发表单 onChange)但原因完全不同。

我通过向滑块更改事件添加 $('#frm').trigger('change'); 解决了我的问题。

HTML

<strong>Speed</strong>
<div class="card">
    <div class="slider" id="speed-slider">
    <div class ="custom-handle ui-slider-handle"></div>
</div>
<input type="hidden" name="speed" value="220" />

JAVASCRIPT

var speedhandle = $("#speed-slider .custom-handle");
$("#speed-slider").slider({
    range: "min",
    max: 255,
    value: 220,
    slide: function(event, ui) {
        speedhandle.text(ui.value);
    },
    change: function(event, ui) {
        speedhandle.text(ui.value);
        $('input[name="speed"]').val($(this).slider("value"));
        $('#frm').trigger('change');
    }
});

我很确定这是错误的做法,但目前它解决了我的问题。