Событие слайдера JQuery, запущенное на отдельном дескрипторе (диапазон слайдера) - PullRequest
0 голосов
/ 14 сентября 2018

Есть ли способ вызвать события, основанные на движении отдельных ручек ползунка?

Было бы интересно, так как мне нужно обновить указатель даты в зависимости от перемещенного маркера. Проблема в том, что я не знаю, есть ли способ:

  • Чтобы указать событие для определенного дескриптора

  • Или для получения идентификатора перемещенного дескриптора через слушателя ...

Вот как мои события в настоящее время запускаются.

$(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 голосов
/ 26 сентября 2018

Во-первых; ваша настройка указывает только на одну ручку. Для нескольких дескрипторов вам нужно установить 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;
  }
};
...