Hướng dẫn JS

JS TRANG CHỦ Giới thiệu JS JS Đến đâu Đầu ra JS Tuyên bố JS Cú pháp JS Bình luận JS Biến JS JS Hãy JS Const Toán tử JS Số học JS Chuyển nhượng JS Các loại dữ liệu JS Các hàm JS Đối tượng JS Sự kiện JS Chuỗi JS Phương thức chuỗi JS Tìm kiếm chuỗi JS Mẫu chuỗi JS Số JS Phương thức số JS Mảng JS Phương thức mảng JS Sắp xếp mảng JS Lặp lại mảng JS JS Array Const JS ngày Định dạng ngày JS Ngày lấy phương thức JS Phương pháp đặt ngày JS Toán JS JS ngẫu nhiên JS Booleans So sánh JS Điều kiện JS Chuyển đổi JS JS Loop cho JS Loop For In JS Loop For Of JS lặp trong khi JS Break JS lặp lại Bộ JS Bản đồ JS JS Typeof Chuyển đổi loại JS JS Bitwise JS RegExp Lỗi JS Phạm vi JS JS Hoists Chế độ nghiêm ngặt JS JS từ khóa này Hàm mũi tên JS Lớp JS JS JSON Gỡ lỗi JS Hướng dẫn kiểu JS Các phương pháp hay nhất về JS JS sai lầm Hiệu suất JS JS dành riêng từ

Phiên bản JS

Phiên bản JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Lịch sử JS

Đối tượng JS

Định nghĩa đối tượng Thuộc tính đối tượng Phương thức đối tượng Hiển thị đối tượng Người truy cập đối tượng Trình tạo đối tượng Nguyên mẫu đối tượng Đối tượng lặp lại Bộ đối tượng Bản đồ đối tượng Tham chiếu đối tượng

Các hàm JS

Định nghĩa hàm Tham số chức năng Lời mời hàm Gọi hàm Áp dụng chức năng Chức năng đóng cửa

Lớp JS

Giới thiệu Lớp học Kế thừa giai cấp Lớp tĩnh

JS Async

Gọi lại JS JS không đồng bộ JS hứa JS Async / Await

JS HTML DOM

Giới thiệu DOM Phương thức DOM Tài liệu DOM Phần tử DOM DOM HTML Các biểu mẫu DOM DOM CSS Hoạt ảnh DOM Sự kiện DOM Trình xử lý sự kiện DOM Điều hướng DOM Nút DOM Bộ sưu tập DOM Danh sách nút DOM

BOM trình duyệt JS

Cửa sổ JS Màn hình JS Vị trí JS Lịch sử JS JS Navigator JS Popup Alert Thời gian JS JS Cookies

API web JS

Giới thiệu API Web API biểu mẫu web API lịch sử web API lưu trữ web API công nhân web API tìm nạp web API vị trí địa lý web

JS AJAX

Giới thiệu về AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

JS JSON

Giới thiệu JSON Cú pháp JSON JSON so với XML Các loại dữ liệu JSON Phân tích cú pháp JSON JSON Stringify Đối tượng JSON Mảng JSON Máy chủ JSON JSON PHP HTML JSON JSON JSONP

JS so với jQuery

Bộ chọn jQuery jQuery HTML jQuery CSS jQuery DOM

Đồ họa JS

Đồ họa JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Ví dụ về JS

Ví dụ về JS JS HTML DOM Đầu vào HTML JS Đối tượng HTML JS Sự kiện HTML JS Trình duyệt JS Trình chỉnh sửa JS Bài tập JS JS Quiz Chứng chỉ JS

Tham khảo JS

Đối tượng JavaScript Đối tượng DOM HTML


JavaScript HTML DOM EventListener


Phương thức addEventListener ()

Thí dụ

Thêm trình xử lý sự kiện kích hoạt khi người dùng nhấp vào nút:

document.getElementById("myBtn").addEventListener("click", displayDate);

Phương addEventListener()thức đính kèm một trình xử lý sự kiện vào phần tử được chỉ định.

Phương addEventListener()thức này đính kèm một trình xử lý sự kiện vào một phần tử mà không ghi đè các trình xử lý sự kiện hiện có.

Bạn có thể thêm nhiều trình xử lý sự kiện vào một phần tử.

Bạn có thể thêm nhiều trình xử lý sự kiện cùng loại vào một phần tử, tức là hai sự kiện "nhấp chuột".

Bạn có thể thêm trình xử lý sự kiện vào bất kỳ đối tượng DOM nào không chỉ các phần tử HTML. tức là đối tượng cửa sổ.

Phương addEventListener()pháp này giúp bạn dễ dàng kiểm soát cách sự kiện phản ứng với hiện tượng sủi bọt.

Khi sử dụng addEventListener()phương pháp này, JavaScript được tách biệt khỏi đánh dấu HTML, để dễ đọc hơn và cho phép bạn thêm trình xử lý sự kiện ngay cả khi bạn không kiểm soát đánh dấu HTML.

Bạn có thể dễ dàng loại bỏ trình nghe sự kiện bằng cách sử dụng removeEventListener()phương pháp này.


Cú pháp

element.addEventListener(event, function, useCapture);

Tham số đầu tiên là loại sự kiện (như " click" hoặc " mousedown" hoặc bất kỳ Sự kiện DOM HTML nào khác .)

Tham số thứ hai là hàm chúng ta muốn gọi khi sự kiện xảy ra.

Tham số thứ ba là một giá trị boolean chỉ định sử dụng sự kiện tạo bọt hay ghi lại sự kiện. Tham số này là tùy chọn.

Lưu ý rằng bạn không sử dụng tiền tố "on" cho sự kiện; sử dụng " click" thay vì " onclick".


Thêm một trình xử lý sự kiện vào một phần tử

Thí dụ

Cảnh báo "Hello World!" khi người dùng nhấp vào một phần tử:

element.addEventListener("click", function(){ alert("Hello World!"); });

Bạn cũng có thể tham khảo một hàm "được đặt tên" bên ngoài:

Thí dụ

Cảnh báo "Hello World!" khi người dùng nhấp vào một phần tử:

element.addEventListener("click", myFunction);

function myFunction() {
  alert ("Hello World!");
}


Thêm nhiều trình xử lý sự kiện vào cùng một phần tử

Phương addEventListener()pháp này cho phép bạn thêm nhiều sự kiện vào cùng một phần tử mà không cần ghi đè lên các sự kiện hiện có:

Thí dụ

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

Bạn có thể thêm các sự kiện thuộc các loại khác nhau vào cùng một phần tử:

Thí dụ

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

Thêm một trình xử lý sự kiện vào đối tượng cửa sổ

Phương addEventListener()pháp này cho phép bạn thêm trình xử lý sự kiện trên bất kỳ đối tượng DOM HTML nào, chẳng hạn như các phần tử HTML, tài liệu HTML, đối tượng cửa sổ hoặc các đối tượng khác hỗ trợ sự kiện, chẳng hạn như xmlHttpRequestđối tượng.

Thí dụ

Thêm trình xử lý sự kiện sẽ kích hoạt khi người dùng thay đổi kích thước cửa sổ:

window.addEventListener("resize", function(){
  document.getElementById("demo").innerHTML = sometext;
});

Các thông số vượt qua

Khi chuyển các giá trị tham số, hãy sử dụng "hàm ẩn danh" gọi hàm được chỉ định với các tham số:

Thí dụ

element.addEventListener("click", function(){ myFunction(p1, p2); });

Tạo bong bóng sự kiện hoặc Chụp sự kiện?

Có hai cách lan truyền sự kiện trong HTML DOM, tạo bọt và bắt giữ.

Sự lan truyền sự kiện là một cách xác định thứ tự phần tử khi một sự kiện xảy ra. Nếu bạn có phần tử <p> bên trong phần tử <div> và người dùng nhấp vào phần tử <p>, thì sự kiện "nhấp chuột" của phần tử nào sẽ được xử lý đầu tiên?

Trong quá trình sôi , sự kiện của phần tử bên trong nhất được xử lý trước rồi đến phần bên ngoài: sự kiện nhấp chuột của phần tử <p> được xử lý đầu tiên, sau đó là sự kiện nhấp chuột của phần tử <div>.

Khi nắm bắt , sự kiện của phần tử bên ngoài nhất được xử lý đầu tiên và sau đó sự kiện nhấp chuột của phần tử bên trong: <div> sẽ được xử lý đầu tiên, sau đó là sự kiện nhấp chuột của phần tử <p>.

Với phương thức addEventListener (), bạn có thể chỉ định kiểu truyền bằng cách sử dụng tham số "useCapture":

addEventListener(event, function, useCapture);

Giá trị mặc định là false, giá trị này sẽ sử dụng sự lan truyền sôi nổi, khi giá trị được đặt thành true, sự kiện sẽ sử dụng sự lan truyền bắt giữ.

Thí dụ

document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);

Phương thức removeEventListener ()

Phương removeEventListener()thức loại bỏ các trình xử lý sự kiện đã được đính kèm với phương thức addEventListener ():

Thí dụ

element.removeEventListener("mousemove", myFunction);

Tham chiếu đối tượng sự kiện HTML DOM

Để có danh sách tất cả các sự kiện HTML DOM, hãy xem Tham chiếu Đối tượng Sự kiện HTML DOM hoàn chỉnh của chúng tôi .


Kiểm tra bản thân với các bài tập

Bài tập:

Sử dụng eventListenerđể gán một sự kiện onclick cho <button>phần tử.

<button id="demo"></button>

<script>
document.getElementById("demo").("", myFunction);
</script>