Home > widget-integration > RecommendationWidgetController > attachCarouselButtonHandlers
RecommendationWidgetController.attachCarouselButtonHandlers() method
Attaches click event handlers to carousel navigation buttons (Previous/Next).
Binds click events to circular navigation buttons based on their aria-label attributes. Override this method to customize button behavior, add additional navigation controls, or implement custom navigation logic.
Signature:
protected attachCarouselButtonHandlers(container: HTMLElement, slider: SlickInstance): void;
Parameters
|
Parameter |
Type |
Description |
|---|---|---|
|
container |
HTMLElement |
The HTML element containing the carousel and buttons |
|
slider |
The initialized Slick carousel instance |
Returns:
void
Example 1
Override to add keyboard shortcuts for navigation:
protected attachCarouselButtonHandlers(container, slider) {
super.attachCarouselButtonHandlers(container, slider);
// Add keyboard navigation
container.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft') {
slider.slick('slickPrev');
} else if (e.key === 'ArrowRight') {
slider.slick('slickNext');
}
});
}
Example 2
Override to add analytics tracking to navigation:
protected attachCarouselButtonHandlers(container, slider) {
const buttons = container.querySelectorAll('.boost-sd__button--circle');
buttons.forEach((button) => {
button.addEventListener('click', () => {
const direction = button.getAttribute('aria-label');
this.analytics.track('carousel_navigation', { direction });
if (direction === 'Next') {
slider.slick('slickNext');
} else if (direction === 'Previous') {
slider.slick('slickPrev');
}
});
});
}