JavaScriptda Hodisa Oʻtarishni Toʻxtatishni Qoʻllash

Faraz qilaylik, bitta ota-ishchi ichida bizda tugma va maʼlum bir blok bor:

html<div id="parent">
  <button>click me</button>
  <div id="block">
    text
  </div>
</div>

Elementlarning havolalarini o'zgaruvchilarga olaylik:

javascriptlet parent = document.querySelector('#parent');
let button = document.querySelector('button');
let block  = document.querySelector('#block');

Faraz qilaylik, bizning blokimiz dastlab yashiringan:

css#block:not(.active) {
  display: none;
}

Keling, tugmacha bosilganda bizning blokimiz koʻrinadigan qilaylik:

javascriptbutton.addEventListener('click', function() {
  block.classList.add('active');
});

Endi esa, ota-ishchining istalgan joyiga bosilganda bizning blokimiz yashirinadigan qilaylik:

javascriptparent.addEventListener('click', function() {
  block.classList.remove('active');
});

Biroq, bizni kutilmagan sirli hodisa kutmoqda: tugma ota-ishchi ichida joylashgani sababli, tugmacha bosish bir vaqtning o'zida ota-ishchiga bosish demakdir. Bu shuni anglatadiki, dastlab bizning blokimiz ko'rinadi, keyin esa hodisaning o'tarishi tufayli ota-ishchidagi ishlovchi ishga tushadi va bizning blokimiz yashirinadi.

Mana shu yerda oʻtarishni bekor qilish imkoniyati bizga kerak bo'ladi: biz tugmacha bosilganda oʻtarishni bekor qilishni ta'minlashimiz mumkin, shunda ota-ishchi ushbu bosishga javob bermaydi.

Задание 1

Tasvirlangan vazifaning to'g'ri ishlashini mustaqil ravishda amalga oshiring.