function addClickListeners(buttonsSelector, dialogSelector) {
const buttons = document.querySelectorAll(buttonsSelector);
const dialog = document.querySelector(dialogSelector);
buttons.forEach(n => n.addEventListener('click', e => {
e.preventDefault();
dialog.style.display = 'block';
}));
dialog.addEventListener('click', ({ target }) => {
if (target.classList.contains('popup-close')) {
document.getElementById('name_1').setAttribute('disabled', true);
document.getElementById('phone_1').setAttribute('disabled', true);
dialog.style.display = 'none';
} else {
if (!target.closest('.popup-content')) {
dialog.style.display = 'none';
}
}
});
}
addClickListeners('header .contacts a', '.popup-call');
addClickListeners('.sentence-btn', '.popup-discount');
addClickListeners('.check-btn', '.popup-check');
'use strict';
const { Queue } = require('plain-queue');
const queue = new Queue;
// внутри async function
chat.quiz = global_quizzes[quiz_id];
if(!chat.quiz) {
chat.quiz = await queue.addTask(function () {
return global_quizzes[quiz_id] || Chat_Quizzes.findById(quiz_id).exec();
});
global_quizzes[quiz_id] = chat.quiz;
}
i
, т.к. она находится в их общйе области видимсти. когда цикл отработает она будет для всех обработчиков равна 2. чтобы исправить это, нужно замкнуть каждый обработчик на своей i
. for(let i = 0; i < btn.length; i++) {...}
for(var i = 0; i < btn.length; i++){
(function(i) {
btn[i].onclick = function(e){e.target.style.marginLeft = i * (10) + 'px';}
})(i)
}
btn.forEach((el, i) => {
el.onclick = function(e){e.target.style.marginLeft = i * (-100) + '%';}
})
if ('big_string'.includes('string')) {
doSomethingBeautiful();
}