В библиотеке Shepherd.js метод getById
предназначен для получения конкретного шага тура по его уникальному
идентификатору. Этот метод особенно полезен при необходимости управления
отдельными шагами после их создания, без обращения к массиву всех шагов
напрямую.
const step = tour.getById(id);
tour — объект тура, созданный через
new Shepherd.Tour(options).id — строка, уникальный идентификатор
шага, который был задан при его создании.Shepherd.Step) с указанным id, либо
undefined, если шаг с таким идентификатором не найден.Каждый шаг тура в Shepherd.js может иметь свой уникальный
идентификатор. Это делается при создании шага через метод
addStep:
const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: { enabled: true },
classes: 'shepherd-theme-arrows'
}
});
tour.addStep({
id: 'intro',
text: 'Это вводный шаг',
attachTo: {
element: '#start-button',
on: 'bottom'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
Идентификатор 'intro' в данном примере позволяет позднее
получить доступ к этому шагу напрямую через getById.
const introStep = tour.getById('intro');
if (introStep) {
introStep.updateStepOptions({
text: 'Обновлённый текст для вводного шага'
});
}
В данном примере метод updateStepOptions изменяет
параметры уже созданного шага без необходимости пересоздавать его.
const step = tour.getById('intro');
if (step) {
step.show();
}
Метод show() позволяет отобразить выбранный шаг,
независимо от позиции текущего шага тура.
const step = tour.getById('intro');
if (step) {
step.getElement().classList.add('highlight-step');
}
Использование getElement() возвращает DOM-элемент шага,
к которому можно применять любые стандартные методы работы с элементами
страницы.
getById всегда
возвращает объект типа Shepherd.Step или
undefined. Это позволяет использовать проверку
существования шага перед его модификацией.id в пределах одного тура. Дублирование
идентификаторов приведет к непредсказуемому поведению при вызове
getById.getById происходит после его добавления.id и вызвать show(),
создавая нелинейный поток тура.intro, form-step-1,
confirmation).settings-privacy, settings-notifications),
чтобы облегчить поиск через getById.Метод getById хорошо сочетается с:
updateStepOptions() — для изменения текста, кнопок,
классов.show() и hide() — для программного
управления отображением шага.destroy() — для удаления шага, если больше не
нужен.getElement() — для работы с DOM-структурой шага.Эта функциональность делает getById мощным инструментом
для гибкого управления турами, позволяя обращаться к отдельным шагам без
необходимости хранить отдельные переменные для каждого шага и
обеспечивая динамическую модификацию поведения и содержимого тура.