Как установить программный код слайдера jQuery UI и события пожара?
У меня есть ползунок, определенный так:
$("#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);
Это свойство задает значение ползунка, а слайдер отображается правильно, но мой обработчик слайдов никогда не вызывается для работы в таблице.
Что мне здесь не хватает?
Ответы
Ответ 1
Похоже, что параметр слайда действителен только для событий мыши. При программном программировании событие изменения запускается. Поэтому изменение моего настроения привело к тому, что я хотел.
$("#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);
}
});
Ответ 2
Для инициализации слайдера описанный выше метод "slide: function (..." и "change: function (" работает отлично ". Но изменить слайдер впоследствии извне, например, нажав на миниатюру или любой другой div с" on-click-event" вы можете использовать:
$("#slider").slider('value', newvalue);
Существенным намеком для меня была некорректная строка кода ($ rows?, PHP?):
$("#slider").slider('value', $rows.length - index);
Ответ 3
Почему вы не вызываете это после установки значения?
scrollTheTable($rows.length - index, totalRows, visibleRows, $table);
Ответ 4
как указано в api jquery: использование слайдера ('значение', X) вызовет встроенную функцию изменения. поэтому предложение состоит в том, чтобы не использовать обратный вызов слайда.
Ответ 5
Я использую слайдер с двумя ручками. Я смог программно обновить его с помощью этого кода:
$("#slider-range").slider('values',[57,180]).change();