Подозреваю, что виноват ".parents()"
.closest('.block')
или .parent().next('.slider-btns')
. var current = this.slider.parent().parent().parent().find('.active').eq(this.currentImg);
current.removeClass('active');
var current = this.slider.parent().parent().parent().find('.active');
current.removeClass('active');
/....... поменяйте кусок на этот... this внутри не тот ! Чтобы передать нужный контекст внутрь следует сохранить его в другой переменной.
let that = this;
this.sliderPoint.on("click", function () {
that.scrollImages( this.dataset.id - 1, that.speed);
});
this.sliderPoint.on('click', e => {
this.currentImg = e.target.dataset.id;
this.scrollImages(this.currentImg, this.speed);
});
[...Array(count)].map((n, i) => `<div class="slider-point" data-id="${i}"></div>`).join('')
Array(count).fill('<div class="slider-point"></div>').join('')
this.currentImg = $(e.target).index();
document.addEventListener('click', e => {
const slide = e.target.closest('.slide');
if (slide) {
const index = Array.prototype.indexOf.call(
slide.parentNode.children,
slide
);
console.log(index);
}
});
for (const n of document.querySelectorAll('.slide')) {
n.addEventListener('click', onClick);
}
function onClick() {
let index = 0;
for (let el = this; el = el.previousElementSibling; index++) ;
console.log(index);
}
document.querySelectorAll('.slider').forEach(function({ children }) {
[].forEach.call(children, (n, i) => {
n.dataset.index = i;
n.addEventListener('click', this);
});
}, e => console.log(+e.currentTarget.dataset.index));