<button class="btn-chapter" data-chapter="1">Глава 1</button>
<button class="btn-chapter" data-chapter="2">Глава 2</button>
<button class="btn-chapter" data-chapter="3">Глава 3</button>
<button class="btn-chapter" data-chapter="4">Глава 4</button>
<button class="btn-chapter" data-chapter="5">Глава 5</button>
<div class="chapter" id="chapter-1"><h2>Глава 1: Основы Фотошопа - Растровая графика</h2></div>
<div class="chapter" id="chapter-2"><h2>Глава 2: Основы Фотошопа - Растровая графика</h2></div>
<div class="chapter" id="chapter-3"><h2>Глава 3: Основы Фотошопа - Растровая графика</h2></div>
<div class="chapter" id="chapter-4"><h2>Глава 4: Основы Фотошопа - Растровая графика</h2></div>
<div class="chapter" id="chapter-5"><h2>Глава 5: Основы Фотошопа - Растровая графика</h2></div>
.chapter {
display: none;
}
.chapter.is-open {
display: block;
}
document.addEventListener('DOMContentLoaded', function() {
const allChapters = document.querySelectorAll('.chapter');
const closeAllChapters = () => allChapters.forEach(el => el.classList.remove('is-open'));
const openChapterById = id => document.getElementById(id).classList.add('is-open');;
document.querySelectorAll('.btn-chapter').forEach(btn => {
btn.addEventListener('click', () => {
closeAllChapters();
openChapterById(`chapter-${btn.dataset.chapter}`);
});
});
});
<button data-id="XXX1" class="copy-button">Copy</button>
<div id="XXX1"></div>
<button data-id="XXX2" class="copy-button">Copy</button>
<div id="XXX2"></div>
<button data-id="XXX3" class="copy-button">Copy</button>
<div id="XXX3"></div>
<textarea id="textarea-el"></textarea>
document.querySelectorAll('.copy-button').forEach(btn => {
btn.addEventListener('click', () => {
const id = btn.dataset.id;
const text = document.getElementById(id).textContent;
document.getElementById('textarea-el').value = text;
});
});
.my-slider
.my-slider-clip
.my-slider-container
.swiper
.my-slider-clip { margin-inline: -50px; overflow: hidden; }
.my-slider-container { padding-inline: 50px; }
.ny-slider .swiper { overflow: visible; }
slidesToShow: 1;
. <div class="filter-item">
<input type="checkbox">
</div>
<div class="filter-item">
<input type="checkbox">
</div>
<div class="filter-item">
<input type="checkbox">
</div>
<button id="apply-button">показать</button>
#apply-button {
display: none;
}
.filter-item {
position: relative;
}
.filter-item input:checked ~ #apply-button {
display: block;
position: absolute;
left: 100%;
top: 50%;
transform: translateY(-50%);
}
const button = document.getElementById('apply-button');
document.querySelectorAll('.filter-item').forEach(item => {
const cb = item.querySelector('input[type=checked]');
cb.addEventListener('change', () => {
if (cb.checked) {
item.appendChild(button);
}
})
});
let timerId;
const timer = () => {
const text = document.querySelector('.Tag-module_content__uLsTI').textContent
if(text.slice(0, -1)<(-52)){
// ...payload
console.log('Сработало условие');
// Сработало, больше не требуется
}
else{
rel();
// Не сработало, запускаем снова через секунду
timerId = setTimeout(timer, 1000);
}
}
timerId = setTimeout(timer, 150);
btn.addEventListener('click' e=>{
const modal = e.target.closest('.modal[data-modal=cart]');
});
Порождается ли событие в элементе
Порождается ли событие кликом по элементу или упрощенно самим элементом?
function debounce(func, delay) {
let timeoutId;
return function (...args) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func.apply(this, args);
}, delay);
};
}
input.addEventListener('input', debounce(e => {
fetchSuggestions(e.target.value); // This is being called on every keystroke
}, 100));
<head>
<script>
const theme = localStorage.getItem('color-theme') === 'dark' ? 'dark' : 'light';
document.documentElement.setAttribute('data-color-theme', theme);
</script>
document.querySelectorAll('.theme-toggle').forEach(el => {
el.addEventListener('click', () => {
const theme = document.documentElement.getAttribute('data-color-theme') === 'dark' ? 'light' : 'dark';
document.documentElement.setAttribute('data-color-theme', theme);
localStorage.setItem('color-theme', theme);
});
});
:root {
--body-bg: white;
}
[data-color-theme="dark"] {
-body-bg: black;
}
document.documentElement.classList.add('dark-theme');
:root {
--body-bg: white;
}
html.dark-theme {
-body-bg: black;
}