ul // ...
const context = this; // сохранить в переменную
[1,2,3,4,5].forEach(function(val) {
let li = document.createElement('li');
li.textContent = val;
li.addEventListener('click', () => {
context.clickList(); // и тут использовать
});
ul.appendChild(li);
}); const selector = $('.evidence-select');
function update() {
const value = selector.val();
const theIndex = parseInt(value) - 1;
$('.evidence-content').each(function(index, el) {
$(el)[index === theIndex ? 'show' : 'hide']();
});
};
selector.on('click', update);
update(); el.offsetWidth; поясню, что обращение (чтение) этого свойства вызывает перерисовку страницы. Что и становится разрывом для последовательных инструкций. void чтобы подчеркнуть, что значение, возвращаемое этой строчкой, никак не используется. requestAnimationFrame предполагает покадровую отрисовку. Тогда уж можно озадачиться математикой расчёта положения для каждого кадра, исходя из времени с начала анимации. requestAnimationFrame можно избавиться от диагонального смещения тем же хаком: c.onclick = function(){
el.style.transform = '';
void el.offsetWidth;
el.style.transition = '10s';
el.style.transform = 'translateY(100%)';
} Распознать через OCR не реальноэто точно? Как пробовали?
for (let i = 0; i < el.span.length; i++) {
el.span[i].addEventListener("click", buyElement);
};сделайте document.body.addEventListener('click', (event) => {
if (! event.target.classList.contains('span')) {
return;
}
// здесь обработка клика по элементу с классом span
}); Так можно удалять-добавлять элементы с классом span и клики по ним будут нормально обрабатываться.