Skip to content

JavaScript hodisalarni boshqarish

Hodisalarni boshqarish — bu hodisalarni qo'shish, olib tashlash va nazorat qilishdir.


Hodisalarni qo'shish

Hodisani biriktirishning eng zamonaviy usuli addEventListener() metodidan foydalanishdir.

html
<button id="btn">Bosish</button>
<p id="demo"></p>

<script>
  const btn = document.getElementById('btn')

  // btn uchun click hodisasini tinglash
  btn.addEventListener('click', myFunction)

  function myFunction() {
    document.getElementById('demo').innerHTML = 'Bosildi!'
  }
</script>

Hodisalarni olib tashlash

Biriktirilgan hodisani olib tashlash uchun removeEventListener() metodidan foydalaniladi.

html
<button id="add">Qo'shish</button>
<button id="remove">Olib tashlash</button>
<button id="test">Sinov bosish</button>
<p id="demo"></p>

<script>
  const test = document.getElementById('test')
  const remove = document.getElementById('remove')
  const add = document.getElementById('add')

  function myFunction() {
    document.getElementById('demo').innerHTML += 'Salom! '
  }

  // Qo'shish tugmasi bosilganda test tugmasiga hodisa biriktirish
  add.addEventListener('click', function () {
    test.addEventListener('click', myFunction)
  })

  // Olib tashlash tugmasi bosilganda test tugmasidan hodisani olib tashlash
  remove.addEventListener('click', function () {
    test.removeEventListener('click', myFunction)
  })
</script>

Muhim eslatma

Hodisa tinglovchisini olib tashlash uchun siz uni qo'shishda ishlatilgan aynan bir xil nomlangan funksiyadan foydalanishingiz kerak. Anonim funksiyalarni olib tashlab bo'lmaydi.


Hodisalarni to'sib qo'yish (Blocking Events)

Ba'zan brauzerning standart harakatini to'sib qo'yishga to'g'ri keladi (masalan, havolani ochishni taqiqlash).

preventDefault() dan foydalanish

Ushbu misol havolaning ochilishini bloklaydi:

html
<a href="https://www.google.com" id="link">Google sahifasiga o'tish</a>
<p id="demo"></p>

<script>
  const link = document.getElementById('link')

  // Havola uchun click hodisasini tinglash
  link.addEventListener('click', function (event) {
    // Standart harakatni to'xtatish (havolaga o'tmaydi)
    event.preventDefault()
    document.getElementById('demo').innerHTML = 'Havola bloklandi!'
  })
</script>