Lập trình sự kiện với Javascript

Lập trình sự kiện với Javascript hướng dẫn các cách thức gắn sự kiện của các tag html với mã lệnh javascript để thực thi các tác vụ cần thiết.


Sự kiện của các tag html

Các tag html trong trang web có nhiều sự kiện xảy ra. Ví dụ sự kiện nạp trang hoàn tất, sự kiện người xem gõ 1 phím. Hoặc sự kiện nhắp 1 liên kết, hay đưa chuột vào 1 hình ảnh, khi user submit 1 form…

Các sự kiện từ chuột

Sự kiệnMô tả
clickXảy ra khi nhắp chuộ trên 1 element nào đó.
mouseoverXảy ra khi con trỏ chuột trên 1 element nào đó
mouseoutXảy ra khi con trỏ chuột được đưa ra khỏi 1 element
mousedownXảy ra khi chuột được đè xuống ở trên 1 element
mouseupXảy ra khi buttin chuột được nhả ra ở trên 1 element
mousemoveXảy ra khi di chuyển chuột.

Các sự kiện từ bàn phím

Sự kiệnMô tả
keydownXảy ra khi user đè 1 phím
Keydown & KeyupXảy ra khi user buông 1 phím

Các sự kiện trong form

Sự kiệnMô tả
focusXảy ra khi user focus 1 element (nhắp chuột hoặc tab nhảy tới)
submitXảy ra khi user submit 1 form
blurXảy ra khi user bỏ 1 element  để chuyển focus sang element khác
changeXảy ra khi user thay đổi giá trị value của element tromg form

Các sự kiện của Window , Document

Sự kiệnMô tả
loadXảy ra khi trình duyệt nạp xong trang web
unloadXảy ra khi  user rời bỏ trang web
resizeXảy ra khi user chỉnh kích thước trình duyệt

Khi các sự kiện này xảy ra, bạn có thể chạy code javascript để thực hiện xử lý cần thiết. Và có ba cách để bạn thực hiện.

Chỉ định sự kiện bằng thuộc tính html

Để chỉ định sự kiện bằng thuộc tính html, bạn dùng cú pháp như sau:

<element event=“mã lệnh javascript; mã lệnh javascript; … ” >

Trong đó element là 1 tag html, event là tên của sự kiện. Khi sự kiện của element xảy ra, các mã lệnh javascript trong dấu nháy sẽ thực thi.

<button 
onclick="console.log('Bạn mới nhắp vào nút');" 
ondblclick="console.log('Bạn mới nhắp đúp nút');"
onmouseover="console.log('Bạn đưa chuột vào nút');" 
> 
Mời bạn thử
</button>

Các mã lệnh javascrtipt ghi trong dấu nháy có thể là lời gọi hàm

<input id="username" onblur="kiemtra()" placeholder="Username">
<em id="thongbao"> </em>
<script>
function kiemtra(){
let un = document.getElementById("username");
if (un.value.length < 6 ) {
document.getElementById("thongbao").innerHTML= "username ngắn quá";
un.focus();
}
}
</script>

Chỉ định sự kiện bằng code Javascript

Để chỉ định sự kiện bằng code Javascript, chọn phần tử rồi gán cho sự kiện hàm để chạy.

element.event =  myFunc;

Trong đó element là phần tử trong DOM, còn event là tên sự kiện (có chữ on ở đầu). Còn myFunc là hàm do bạn định nghĩa để chạy khi có sự kiện xảy ra.

<img id="hinh1" src="https://longnv.name.vn/hinh/songdep1.jpg" width="300">
<script>
let h = document.getElementById("hinh1");
h.onclick = function() {
h.src="https://longnv.name.vn/hinh/songdep2.jpg";
};
h.onmouseover = function() {
h.style.transform= "scale(2)";
};
h.onmouseout = function() {
h.style.transform= "scale(1)";
};
</script>

Chỉ định sự kiện với event listeners

Dùng hàm addEventListener của phần tử để gắn sự kiện với function của bạn

element.addEventListener("event", myFunc);

Trong đó element là 1 phần tử trong DOM, event là tên sự kiện. Còn myFunc là hàm thực thi 1 việc gì đó khi sự kiện xảy ra với element. Chú ý : trong tên sự kiện không có chữ on

<textarea id="motasp" rows="5" cols="80"></textarea> <br>
<span id="thongbao"></span>
<script >
let mt = document.getElementById("motasp");
mt.addEventListener("keyup", function() {
document.getElementById("thongbao").innerHTML= "Số ký tự :" + mt.value.length;
});
mt.addEventListener("focus", function(){
mt.style.backgroundColor="AntiqueWhite";
mt.style.fontSize="1.5em";
});
mt.addEventListener("blur", function() {
mt.style.backgroundColor="white";
mt.style.fontSize="1em";
});
</script>

Mời bạn tham khảo thêm các trang sau: