可以将事件绑定到范围滑块的每个句柄?

时间:2013-07-15 12:30:27

标签: jquery slider

范围滑块

$("#slider-range").slider({
        range: true, min: 0, max: 420, values: [0, 420], slide: slideTime, change: toSpin
    });

和文字字段

$('#min').val(ui.values[ 0 ]);
$('#max').val(ui.values[ 1 ]);

我希望在每个字段的值发生变化时调用一个函数,比如

$('input').on('input propertychange', function() {

但由于鼠标永远不在现场,因此不起作用。也许本地存储是答案,但在进入它之前我想我会看到我是否可以绑定滑块手柄。

我可以像这样使用#slider-range:

var $leftslider = $("#slider-range");  
      $leftslider.bind("mouseup", sliderHandler);
function sliderHandler() {

但我想我需要将mouseups分别左右绑定到每个句柄,为每个句柄调用不同的函数。因此,在滑块更改#min后,左手柄mouseup会调用一个使用#min值的函数。

此主题的变体

$(#slider-range).children('.ui-slider-handle').first().offset();

似乎不起作用。

2 个答案:

答案 0 :(得分:0)

如果你想用事件做,你可以这样做:

$('#min').val(ui.values[ 0 ]).trigger("input");

然后你可以这样听:

$('input').on('input', function() {

您还可以考虑使用自定义事件名称来明确它不是常规事件,而是您自己触发的事件。

答案 1 :(得分:0)

看起来这个问题在那里是“抵消”的。正确的方法:

var $thang = $("#slider-range").children('.ui-slider-handle').first() //removed offset() here;
        $thang.bind("mousedown", thangHandler);

你听到了我:thangHandler。