DarslarWeb dasturlash
Eventlar — addEventListener va boshqalar
click, dblclick, onload, onresize — foydalanuvchi harakatlariga javob berish.
50 daqiqa
JavaScript — Dars 17
Eventlar — sahifaga jon bering
Har bir bosish, yozuv, o'lcham o'zgarishi — event. Ularga to'g'ri javob berish sanatini o'rganamiz.
clickdblclickloadresize
Dars rejasi
6 ta mavzu1. Event nima?
Event — sahifada sodir bo'ladigan voqea: bosish, matn kiritish, oyna yuklanishi va h.k. JS bularga «tinglovchi» biriktirib javob beradi.
click
Sichqoncha bosildi.
input
Matn maydoniga yozuv kiritildi.
submit
Forma yuborildi.
load
Sahifa yuklanib bo'ldi.
resize
Oyna o'lchami o'zgardi.
keydown
Klaviatura tugmasi bosildi.
2. 3 ta yozish uslubi
1. Inline — eski uslub
1<button onclick="alert('Bosildi!')">Bos</button>2. Element xossasi orqali
1const btn = document.getElementById("b");2btn.onclick = function() {3 console.log("Bosildi");4};5// Kamchilik: 1 ta listener — yangi berilsa eskisi o'chadi3. addEventListener — tavsiya etiladi
1const btn = document.getElementById("b");2
3btn.addEventListener("click", () => {4 console.log("Bosildi");5});6
7// Bir nechta listener biriktirish mumkin!8btn.addEventListener("click", () => {9 console.log("Ikkinchi javob");10});3. addEventListener
1// element.addEventListener(event, handler, options)2
3const btn = document.querySelector("#tugma");4
5function hndl() {6 console.log("Bosildi");7}8
9btn.addEventListener("click", hndl);10
11// Olib tashlash — aniq funksiyani ko'rsatish kerak12btn.removeEventListener("click", hndl);13
14// Bir marta ishlaydigan15btn.addEventListener("click", () => {16 console.log("Faqat bir marta");17}, { once: true });4. click va dblclick
1const box = document.querySelector(".quti");2
3box.addEventListener("click", () => {4 box.style.background = "lightblue";5});6
7// Ikki marta bosish (tez)8box.addEventListener("dblclick", () => {9 box.style.background = "salmon";10 box.innerText = "Dblclick!";11});12
13// contextmenu — o'ng bosish14box.addEventListener("contextmenu", (e) => {15 e.preventDefault();16 console.log("O'ng bosildi");17});18
19// mouseenter / mouseleave20box.addEventListener("mouseenter", () => box.classList.add("hover"));21box.addEventListener("mouseleave", () => box.classList.remove("hover"));5. load va resize
1// Sahifa va barcha resurslar yuklanganda2window.addEventListener("load", () => {3 console.log("Hamma narsa tayyor");4});5
6// DOM tayyor bo'lganda (rasm/CSS kutilmaydi)7document.addEventListener("DOMContentLoaded", () => {8 console.log("DOM tayyor");9});10
11// Oyna o'lchami o'zgarganda12window.addEventListener("resize", () => {13 console.log("Kenglik:", window.innerWidth);14 console.log("Balandlik:", window.innerHeight);15});16
17// Scroll18window.addEventListener("scroll", () => {19 console.log("Scroll:", window.scrollY);20});6. event obyekti
1button.addEventListener("click", (e) => {2 console.log(e.target); // qaysi element bosildi3 console.log(e.type); // "click"4 console.log(e.clientX, e.clientY); // koordinatalar5});6
7// Forma submit'ini bloklash8forma.addEventListener("submit", (e) => {9 e.preventDefault();10 console.log("Ma'lumot yuborildi");11});12
13// Klaviatura14document.addEventListener("keydown", (e) => {15 console.log(e.key); // "Enter", "a", "ArrowUp"16 if (e.key === "Escape") closeModal();17});Event turlari
Natijajonli
Kichik test
0 / 41.Bir element uchun bir nechta listener?
2.Forma yuborilishini to'xtatish?
3.DOM tayyor bo'lganda ishlovchi event?
4.e.target nima?