Как программно установить значение ползунка пользовательского интерфейса jQuery и запускать события? - PullRequest
15 голосов
/ 20 мая 2009

У меня есть слайдер, определенный так:

$("#slider").slider({
        orientation: "vertical",
        range: "min",
        min: 0,
        max: totalRows,
        value: totalRows,
        slide: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        }
      });

При использовании ползунка функция, назначенная для ползунка, вызывается без проблем. У меня есть таблица, которая может содержать или не содержать строку, которая имеет класс SelectedItem. Я работаю над методом, который будет «прокручивать» эту строку до верхней части таблицы при загрузке страницы.

Мясо метода выглядит так:

$("#slider").slider('value', $rows.length - index);

Это свойство устанавливает значение ползунка, и ползунок отображается правильно, но мой обработчик слайдов никогда не вызывается для работы с таблицей.

Что мне здесь не хватает?

Ответы [ 5 ]

22 голосов
/ 20 мая 2009

Похоже, что параметр slide действителен только для событий мыши. При программной установке значения происходит событие изменения. Так что, изменив мои настройки, я получил то, что хотел.

  $("#slider").slider({
        orientation: "vertical",
        range: "min",
        min: 0,
        max: totalRows,
        value: totalRows,
        slide: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        },
        change: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        }
      });
6 голосов
/ 03 марта 2013

Чтобы инициализировать ползунок, вышеописанный метод с использованием «slide: function (...» и «change: function (») работает отлично. Но затем можно изменить ползунок снаружи, например, щелкнув миниатюру или любой другой элемент div с «Событие по клику», которое вы можете использовать:

$("#slider").slider('value', newvalue);

Существенным подсказкой для меня была слегка некорректная строка кода ($ lines?, PHP?):

$("#slider").slider('value', $rows.length - index);
0 голосов
/ 28 ноября 2016

Я использую слайдер с двумя ручками. Я смог программно обновить его с помощью этого кода:

$("#slider-range").slider('values',[57,180]).change();
0 голосов
/ 15 февраля 2014

как указано в API jquery: использование ползунка ('значение', X) вызовет встроенную функцию изменения. поэтому предложение не использовать обратный вызов слайдов.

0 голосов
/ 20 мая 2009

Почему бы вам не позвонить после установки значения?

scrollTheTable($rows.length - index, totalRows, visibleRows, $table);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...