Если одна и та же форма вызывается в попапах на странице несколько раз, то как обратиться к родителю конкретной форме, т.к. this не работает?
Но так, естественно, новый класс прикрепляется ко всем попапам.
document.addEventListener('wpcf7submit', (e) => {
if ('123' === e.detail.contactFormId) {
const form = e.target;
const modalBody = form.closest('.modal-body');
if(modalBody) {
modalBody.classList.add('thanks-this');
}
else {
console.log('Творится какая то дичь!');
}
}
});
const containerSelector = '.selectboxss';
const itemClass = 'selectoption';
const itemSelector = `${containerSelector} .${itemClass}`;
const getClasses = el => Array.prototype.filter.call(el.classList, n => n !== itemClass);
//const getClass = el => el.className.match(RegExp(`${itemClass}-\\d+`))[0];
function updateClasses(item) {
const container = item.closest(containerSelector);
const { classList: cl } = container;
cl.remove(...Array.prototype.flatMap.call(container.querySelectorAll(itemSelector), getClasses));
cl.add(...getClasses(item));
//cl.remove(...Array.from(container.querySelectorAll(itemSelector), getClass));
//cl.add(getClass(li));
}
document.querySelectorAll(itemSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => updateClasses(e.currentTarget));
document.addEventListener('click', e => {
const item = e.target.closest(itemSelector);
if (item) {
updateClasses(item);
}
});
jQuery(document).ready(function($) {
document.addEventListener('wpcf7mailsent', function(event) {
var id = event.detail.contactFormId;
var popupId = 'pamyatka-popap-<?php echo get_row_index(); ?>';
// Проверяем, находимся ли мы внутри попапа с определенным ID
if ($(event.target).closest('#' + popupId).length) {
if (id == 19124) {
window.open("<?php echo esc_url($m_dobavit_knopku['url']); ?>", '_blank');
}
}
}, false);
});
$('.config-button a').click(function (){
$(this).parents('.config-col').find('.config-options-text li.active').each(function( key, value ) {
$('.popap-communications-row').append(value.outerHTML);
});
});
slidesPerView: 3.5 // Показать три с половиной слайда, как на примере 1
slidesPerView:1.5,
centeredSlides: true, //в связке с slidesPerView: 1.5 встанет как на примере 2
const groupSelector = 'fieldset.js-tree-box';
const mainSelector = 'legend input';
const itemSelector = 'legend + span input';
const activeClass = 'active';
document.addEventListener('change', ({ target: t }) => {
const group = t.closest(groupSelector);
if (group) {
const main = group.querySelector(mainSelector);
const items = [...group.querySelectorAll(itemSelector)];
if (main === t) {
items.forEach(n => n.checked = t.checked);
} else {
const numChecked = items.reduce((acc, n) => acc + n.checked, 0);
main.checked = numChecked === items.length;
main.indeterminate = 0 < numChecked && numChecked < items.length;
}
group.classList.toggle(activeClass, main.checked);
}
});