В моем раскрывающемся списке с номерами товаров я реализовал функцию, которая прокручивает до номера выбранного товара, когда пользователи открывают выпадающий список.
Однако это должно выполняться только после того, как пользователь выбрал номер товара сам. В противном случае должна отображаться верхняя часть раскрывающегося списка ( первый элемент ).
Для номера элемента по умолчанию 10
выбран.
Проблема:
Когда вы открываете раскрывающийся список, он автоматически прокручивается до положения по умолчанию 10
.
scrollDropdownToSelectedOption(selector) {
const selectedOption = selector.find('.selected');
if (selectedOption.length === 0) {
return;
}
const dropdown = selector.find('.js-options-list');
let scrollPosition;
if (this.deviceManager.getCurrentState() === MOBILE) {
const mobileLabel = selector.find('.js-mobile-label');
scrollPosition = -(mobileLabel.outerHeight() - selectedOption.offset().top + selectedOption.outerHeight());
} else {
scrollPosition = -(selector.offset().top - selectedOption.offset().top + selectedOption.outerHeight() * 2);
}
dropdown.scrollTop(scrollPosition);
},
По умолчанию 10
имеет класс 'selected'
, следовательно, он прокручивается в эту позицию.
Мне понадобится условие, чтобы scrollDropdownToSelectedOption()
запускался только в том случае, если не был выбран ни один параметр в раскрывающемся списке.