Вопрос такой. На dev версии этот код отлично работает. (стек: pug + webpack), когда натягиваю это на Битрикс, тот же самый код не работает. Причину не могу понять. Загвоздка: в коде я специально вывожу sectorInd в консоль чтобы посмотреть его значение. На этапе верстки при наведении все работает как нужно - 1я картинка имеет 0й индекс, 2я - 1й и тд, а при натяжке показывает только 1 и 3 индексы, игнорирую второй. Также иногда выскакивает 5й, хотя у меня всего 3 картинки максимум.
function sectorIndex(el) {
const children = el.parentNode.childNodes,
i = 0;
for (let i = 0; i < children.length; i++) {
if (children[i] === el) {
return i;
}
}
return -1;
}
function changeCardSlider(elem) {
var sectorInd = sectorIndex(elem);
if (sectorInd === -1) {
return;
}
var cardContainer = elem.closest('.product-card_img-slider_container');
var containerImages = cardContainer.querySelectorAll('.product-card_img');
var containerDots = cardContainer.querySelectorAll('.product-card_dot');
var activeImg = cardContainer.querySelector('.product-card_img.active-img');
if (activeImg) {
activeImg.classList.remove('active-img');
console.log(sectorInd)
}
var activeDot = cardContainer.querySelector('.product-card_dot.active-dot');
if (activeDot) {
activeDot.classList.remove('active-dot');
}
containerImages[sectorInd].classList.add('active-img');
containerDots[sectorInd].classList.add('active-dot');
}
function ProductsCards() {
var productCardsSectors = document.querySelectorAll('.product-card_img-sectors .product-card_img-sector');
if (productCardsSectors) {
productCardsSectors.forEach(function (productCardsSector) {
productCardsSector.addEventListener('mouseover', function () {
changeCardSlider(productCardsSector);
});
});
}
var productCardsDots = document.querySelectorAll('.product-card_dots .product-card_dot');
if (productCardsDots) {
productCardsDots.forEach(function (productCardsDot) {
productCardsDot.addEventListener('click', function () {
changeCardSlider(productCardsDot);
});
});
}
}