Cách bắt sự kiện (Event) trong JavaScript
1) Sự kiện là gì !? - Thông thường, sự kiện là những hành động của người dùng khi tương tác lên phần tử HTML. - Ví dụ : Khi người dùng click chuột vào phần tử, đó là một sự kiện. => Ví dụ, bạn hãy thử Click chuột vào đây Khi người dùng gõ văn bản vào textfield, đó là một sự kiện. ...
1) Sự kiện là gì !?
- Thông thường, sự kiện là những hành động của người dùng khi tương tác lên phần tử HTML.
- Ví dụ:
- Khi người dùng click chuột vào phần tử, đó là một sự kiện.
- Khi người dùng gõ văn bản vào textfield, đó là một sự kiện.
- Khi người dùng di chuyển con trỏ vào phần tử, đó là một sự kiện.
- ....
2) Các sự kiện trong JavaScript
- Trong JavaScript, mỗi sự kiện sẽ tương ứng với một cái tên.
- Dưới đây là danh sách một vài sự kiện phổ biến mà ta thường dùng trong JavaScript.
Tên sự kiện | Mô tả |
---|---|
onclick | Sự kiện xảy ra khi người dùng click chuột vào phần tử |
ondblclick | Sự kiện xảy ra khi người dùng click kép chuột vào phần tử |
onmouseenter | Sự kiện xảy ra khi người dùng di chuyển con trỏ vào phần tử |
onmouseleave | Sự kiện xảy ra khi người dùng di chuyển con trỏ ra khỏi phần tử. |
onkeydown | Sự kiện xảy ra khi người dùng đang nhấn một phím |
onkeyup | Sự kiện xảy ra khi người dùng nhả phím ra |
oncopy | Sự kiện xảy ra khi người dùng sao chép nội dung của phần tử |
oncut | Sự kiện xảy ra khi người dùng cắt nội dung của phần tử |
onpaste | Sự kiện xảy ra khi người dùng dán nội dung vào phần tử |
onchange | Sự kiện xảy ra khi người dùng thay đổi giá trị của phần tử |
Bạn sẽ được tìm hiểu đầy đủ tất cả các sự kiện trong bài hướng dẫn nâng cao về sự kiện
3) Bắt sự kiện là gì !?
- "Bắt sự kiện" là khi một sự kiện nào đó xảy ra thì ta muốn JavaScript phản ứng lại với sự kiện đó bằng việc thực thi một đoạn mã xác định.
- Ví dụ, tôi muốn khi người dùng Click chuột vào nút này thì câu lệnh alert('Xin chào JavaScript') sẽ được thực thi.
- Ví dụ, tôi muốn:
- Khi người dùng di chuyển con trỏ vào phần tử này thì màu nền của phần tử này sẽ chuyển sang màu hồng (tức là câu lệnh this.style.backgroundColor='pink' được thực thi)
- Khi người dùng di chuyển con trỏ ra khỏi phần tử này thì màu nền của phần tử này sẽ chuyển sang màu trắng (tức là câu lệnh this.style.backgroundColor='white' được thực thi)
4) Cách bắt sự kiện trong JavaScript
- Trước khi bắt sự kiện thì ta cần phải xác định rõ ba thành phần:
- (1) Phần tử dùng để xảy ra sự kiện.
- (2) Sự kiện sẽ xảy ra.
- (3) Đoạn mã sẽ được thực thi khi sự kiện xảy ra.
- Dưới đây là cú pháp dùng để bắt sự kiện:
Khi người dùng click kép chuột vào nút "Xem kết quả" thì đoạn mã:
var a = 100;
var b = 50;
var result = (a + b)*2;
alert('Kết quả của biểu thức là: ' + result) sẽ được thực thi.
<!DOCTYPE html> <html> <body> <button ondblclick="var a = 100;var b = 50;var result = (a + b)*2;alert('Kết quả của biểu thức là: ' + result)">Xem kết quả</button> </body> </html>
Khi người dùng click chuột vào nút "Xin chào" thì hàm hello() sẽ được thực thi
<!DOCTYPE html> <html> <body> <button onclick="hello()">Xin chào</button> <p id="demo"></p> <script> function hello(){ var name = "Nguyễn Thành Nhân"; var year = 1993; var str = "Tôi tên " + name + " sinh năm " + year; document.getElementById("demo").innerHTML = str; } </script> </body> </html>
- Lưu ý: Với cùng một phần tử, ta có thể bắt cho nó nhiều sự kiện.
Phần tử <div> có id là demo bên dưới được bắt hai sự kiện:
- Khi người dùng di chuyển con trỏ vào nó thì sự kiện onmouseenter xảy ra và câu lệnh this.style.backgroundColor='yellow' sẽ được thực thi.
- Khi người dùng di chuyển con trỏ vào nó thì sự kiện onmouseleave xảy ra và câu lệnh this.style.backgroundColor='gray' sẽ được thực thi.
<!DOCTYPE html> <html> <head> <style type="text/css"> #demo{ awidth:300px; height:200px; background-color:gray; } </style> </head> <body> <div id="demo" onmouseenter="this.style.backgroundColor='yellow'" onmouseleave="this.style.backgroundColor='gray'"></div> </body> </html>
- Lưu ý:
- Nếu đoạn mã được viết bên trong bên trong cặp dấu nháy kép thì trong đoạn mã tuyệt đối không được chứa ký tự là dấu nháy kép.
- Nếu đoạn mã được viết bên trong bên trong cặp dấu nháy đơn thì trong đoạn mã tuyệt đối không được chứa ký tự là dấu nháy đơn.
<button onclick="alert("Hello")">Xin chào</button> <button onclick='alert('Hello')'>Xin chào</button> <button onclick="alert('Hello')">Xin chào</button> <button onclick='alert("Hello")'>Xin chào</button>
5) Một số ví dụ khác
<!DOCTYPE html> <html> <body> <input type="text" onkeydown="this.style.backgroundColor='pink'" onkeyup="this.style.backgroundColor='yellow'" placeholder="gõ ký tự vào đây"> </body> </html>
<!DOCTYPE html> <html> <body> <textarea cols="50" rows="15" oncopy="alert('Bạn vừa sao chép nội dung của phần tử này')" oncut="alert('Bạn vừa cắt nội dung của phần tử này')" onpaste="alert('Bạn vừa dán nội dung vào phần tử này')">Tài liệu hướng dẫn học lập trình web</textarea> </body> </html>
<!DOCTYPE html> <html> <body> <select onchange="alert('Bạn vừa thay đổi giá trị của phần tử này')"> <option value="html">HTML</option> <option value="css">CSS</option> <option value="javascript">JavaScript</option> <option value="mysql">MySQL</option> <option value="php">PHP</option> </select> </body> </html>