jQuery滑块事件在单个句柄上触发(滑块范围)

时间:2018-09-14 12:48:10

标签: javascript jquery events slider jquery-events

有没有一种方法可以根据各个滑块的移动来触发事件?

这很有趣,因为我需要根据移动的手柄来更新日期选择器。问题是我不知道是否真的有办法:

  • 要在特定句柄上指定事件

  • 或者通过侦听器检索移动的手柄的ID ...

这是当前触发我的事件的方式。

$(function() {
      var evt = this.timelineDiv
        .children(".slider")
        .slider({
          min: this.dates.start,
          max: this.dates.end,
          step: 1,
          change: function(event, ui) {
            conditionnalDatePickersUpdate();
            },
          slide: function(event, ui) {
            conditionnalDatePickersUpdate();
            }
          })
          .slider("pips", {
            rest: "label",
            step: 1
            })
    });

1 个答案:

答案 0 :(得分:0)

首先; 您的设置仅指示一个手柄。对于多个句柄,您需要将values: Array设置为一个选项。

第二; 您可以使用内置的ui对象来检查handleIndex和值。

$(function(){
  var values = [1,10];
  var $slider = $(".slider").slider({ 
    values: values, 
    change: handleChanged 
  }).slider("pips");

  // fill in the rest of your setup

});

然后在更改事件触发后,可以使用以下方法将这些值与原始值进行比较;

var handleChanged = function( evt, ui ) {
  switch ( ui.handleIndex ) {
    case 0:
      // do something for first handle
      break;
    case 1:
      // do something for second handle
      break;
    case 2:
      // do something for third handle
      break;
  }
};