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').disabled = true;
document.getElementById('phone_1').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;
}
function debounce(f, delay) {
let timeoutId = null;
return function() {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => f.apply(this, arguments), delay);
};
}
function throttle(f, delay) {
let lastCall = -Infinity;
return function() {
const now = +new Date;
if (now - lastCall > delay) {
lastCall = now;
return f.apply(this, arguments);
}
};
}
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();
}
class Foo {
#private = 42;
}
class Foo {
static property = 42;
static method() {...}
}