Skip to content

Commit 7536fbd

Browse files
committed
feat(navigation): set disabled prop on nav element if it is a <button> element
fixes #4312
1 parent 95ffc2b commit 7536fbd

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/components/navigation/navigation.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,34 @@ import $ from '../../utils/dom';
22
import { extend, bindModuleMethods } from '../../utils/utils';
33

44
const Navigation = {
5+
toggleEl($el, disabled) {
6+
$el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);
7+
if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;
8+
},
59
update() {
610
// Update Navigation Buttons
711
const swiper = this;
812
const params = swiper.params.navigation;
13+
const toggleEl = swiper.navigation.toggleEl;
914

1015
if (swiper.params.loop) return;
1116
const { $nextEl, $prevEl } = swiper.navigation;
1217

1318
if ($prevEl && $prevEl.length > 0) {
1419
if (swiper.isBeginning) {
15-
$prevEl.addClass(params.disabledClass);
20+
toggleEl($prevEl, true);
1621
} else {
17-
$prevEl.removeClass(params.disabledClass);
22+
toggleEl($prevEl, false);
1823
}
1924
$prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](
2025
params.lockClass,
2126
);
2227
}
2328
if ($nextEl && $nextEl.length > 0) {
2429
if (swiper.isEnd) {
25-
$nextEl.addClass(params.disabledClass);
30+
toggleEl($nextEl, true);
2631
} else {
27-
$nextEl.removeClass(params.disabledClass);
32+
toggleEl($nextEl, false);
2833
}
2934
$nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](
3035
params.lockClass,

0 commit comments

Comments
 (0)