Duong Tran

Duong Tran

1660465800

Ủy Quyền Sự Kiện Bằng JavaScript

1. Tại sao phải tổ chức sự kiện?

Hãy ghi lại một thông báo vào bảng điều khiển khi một nút HTML được nhấp vào.

Để làm cho nó hoạt động, bạn cần chọn nút, sau đó sử dụng addEventListener()phương pháp để đính kèm trình nghe sự kiện:

<button id="buttonId">Click me</button>
<script>
  document.getElementById('buttonId')
    .addEventListener('click', () => console.log('Clicked!'));
</script>

Đó là cách để nghe các sự kiện trên một phần tử duy nhất, đặc biệt là một nút.

Điều gì về lắng nghe các sự kiện trên nhiều nút? Đây là cách triển khai có thể thực hiện:

<div id="buttons">
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
  <!-- buttons... -->
  <button class="buttonClass">Click me</button>
</div>
<script>
  const buttons = document.getElementsByClassName('buttonClass');
  for (const button of buttons) {
    button.addEventListener('click', () => console.log('Clicked!'));
  }
</script>

Hãy xem bản demo Codesandbox để xem nó hoạt động như thế nào.

Danh sách các nút được lặp lại for (const button of buttons)và một trình nghe mới được đính kèm vào mỗi nút. Ngoài ra, khi một nút được thêm vào hoặc xóa khỏi danh sách, bạn phải xóa hoặc đính kèm trình xử lý sự kiện theo cách thủ công.

Có cách nào tốt hơn không?

May mắn thay, khi sử dụng mẫu ủy quyền sự kiện , việc lắng nghe các sự kiện trên nhiều phần tử chỉ yêu cầu một trình nghe sự kiện.

Đoàn sự kiện sử dụng các chi tiết cụ thể của cơ chế lan truyền sự kiện . Để hiểu cách thức hoạt động của ủy quyền sự kiện, tôi khuyên bạn nên tìm hiểu cách tuyên truyền sự kiện trước.

2. Truyền bá sự kiện

Khi bạn nhấp vào nút trong HTML sau:

<html>
  <body>
    <div id="buttons">
      <button class="buttonClass">Click me</button>
    </div>
  </body>
</html>

Sự kiện nhấp chuột được kích hoạt trên bao nhiêu phần tử? Không nghi ngờ gì nữa, chính nút đó sẽ nhận được một sự kiện nhấp chuột. Nhưng cũng có ... tổ tiên của tất cả các nút và thậm chí cả documentwindowcác đối tượng.

Sự kiện nhấp chuột lan truyền theo 3 giai đoạn:

  1. Giai đoạn nắm bắt - Bắt đầu từ và phần tử gốc window, documentsự kiện đi xuống qua tổ tiên của phần tử đích
  2. Giai đoạn mục tiêu - Sự kiện được kích hoạt trên phần tử mà người dùng đã nhấp vào
  3. Giai đoạn bong bóng - Cuối cùng, sự kiện bong bóng thông qua tổ tiên của phần tử đích cho đến phần tử gốc document, và window.

Tuyên truyền sự kiện JavaScript

Đối số thứ ba captureOrOptionscủa phương pháp:

element.addEventListener(eventType, handler[, captureOrOptions]);

cho phép bạn nắm bắt các sự kiện từ các giai đoạn khác nhau.

  • Nếu captureOrOptionsđối số bị thiếu falsehoặc { capture: false }, thì người nghe nắm bắt các sự kiện của các giai đoạn đích và bong bóng
  • Nếu đối số là truehoặc { capture: true }, thì người nghe sẽ lắng nghe các sự kiện của giai đoạn nắm bắt .

Trình xử lý sự kiện sau sẽ lắng nghe các sự kiện nhấp chuột trong giai đoạn chụp xảy ra trên <body>phần tử:

document.body.addEventListener('click', () => {
  console.log('Body click event in capture phase');
}, true);

Trong bản demo Codesandbox này , khi nhấp vào nút, bạn có thể thấy trong bảng điều khiển cách sự kiện lan truyền.

Ok, truyền sự kiện giúp nắm bắt các sự kiện của nhiều nút như thế nào?

Thuật toán rất đơn giản: gắn trình nghe sự kiện vào nút cha của các nút và bắt sự kiện sôi sục khi một nút được nhấp. Đây chính xác là cách hoạt động của phái đoàn sự kiện.

3. Đoàn sự kiện

Hãy sử dụng ủy quyền sự kiện để bắt các lần nhấp vào nhiều nút:

<div id="buttons"> <!-- Step 1 -->
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
  <!-- buttons... -->
  <button class="buttonClass">Click me</button>
</div>
<script>
  document.getElementById('buttons')
    .addEventListener('click', event => { // Step 2
      if (event.target.className === 'buttonClass') { // Step 3
        console.log('Click!');
      }
    });
</script>

Mở bản demo Codesandbox và nhấp vào bất kỳ nút nào - bạn sẽ thấy 'Click!'thông báo được ghi vào bảng điều khiển.

Ý tưởng của tổ chức sự kiện rất đơn giản. Thay vì gắn trực tiếp trình lắng nghe sự kiện vào các nút, bạn ủy quyền lắng nghe phụ huynh <div id="buttons">. Khi một nút được nhấp, trình lắng nghe của phần tử mẹ sẽ bắt được sự kiện sôi sục (nhớ lại sự lan truyền sự kiện?).

Sử dụng ủy quyền sự kiện yêu cầu 3 bước:

Bước 1. Xác định gốc của các phần tử cần theo dõi các sự kiện

Trong ví dụ trên, <div id="buttons">là phần tử cha của các nút.

Bước 2. Đính kèm trình xử lý sự kiện vào phần tử mẹ

document.getElementById('buttons') .addEventListener('click', handler)gắn trình nghe sự kiện vào phần tử cha của các nút. Trình nghe này phản ứng với các lần nhấp vào nút vì sự kiện nhấp vào nút bong bóng thông qua tổ tiên (nhờ sự lan truyền sự kiện).

Bước 3. Sử dụng event.target để chọn phần tử mục tiêu

Khi một nút được nhấp, hàm xử lý được gọi với một đối số: eventđối tượng. Thuộc tính event.targetlà phần tử mà sự kiện đã được gửi đi, trong ví dụ này là một nút:

  // ...
  .addEventListener('click', event => {
    if (event.target.className === 'buttonClass') {
      console.log('Click!');
    }
  });

Như một lưu ý phụ, hãy event.currentTargettrỏ đến phần tử mà người nghe sự kiện được đính kèm trực tiếp. Trong ví dụ, event.currentTarget<div id="buttons">.

Bây giờ bạn có thể thấy lợi ích của mô hình ủy quyền sự kiện: thay vì gắn người nghe vào mọi nút như đã được thực hiện trước đó , nhờ ủy quyền sự kiện, chỉ cần một người nghe sự kiện là cần thiết .

4. Tóm tắt

Khi một sự kiện nhấp chuột xảy ra (hoặc bất kỳ sự kiện nào khác lan truyền):

  • Sự kiện đi xuống từ window,, documentphần tử gốc và qua tổ tiên của phần tử đích (giai đoạn bắt giữ)
  • Sự kiện xảy ra trên mục tiêu (giai đoạn mục tiêu)
  • Cuối cùng, sự kiện bong bóng thông qua tổ tiên của mục tiêu cho đến phần tử gốc documentwindow(giai đoạn bong bóng).

Cơ chế này được đặt tên là sự lan truyền sự kiện .

Ủy quyền sự kiện là một mẫu hữu ích vì bạn có thể lắng nghe các sự kiện trên nhiều phần tử bằng cách sử dụng một trình xử lý sự kiện.

Để thực hiện công việc ủy ​​quyền sự kiện cần có 3 bước:

  1. Xác định gốc của các phần tử cần theo dõi các sự kiện
  2. Đính kèm trình xử lý sự kiện vào phần tử mẹ
  3. Sử dụng event.targetđể chọn các phần tử mục tiêu

 Nguồn: https://dmitripavlutin.com/javascript-event-delegation/

#javascript 

What is GEEK

Buddha Community

Ủy Quyền Sự Kiện Bằng JavaScript

Rahul Jangid

1622207074

What is JavaScript - Stackfindover - Blog

Who invented JavaScript, how it works, as we have given information about Programming language in our previous article ( What is PHP ), but today we will talk about what is JavaScript, why JavaScript is used The Answers to all such questions and much other information about JavaScript, you are going to get here today. Hope this information will work for you.

Who invented JavaScript?

JavaScript language was invented by Brendan Eich in 1995. JavaScript is inspired by Java Programming Language. The first name of JavaScript was Mocha which was named by Marc Andreessen, Marc Andreessen is the founder of Netscape and in the same year Mocha was renamed LiveScript, and later in December 1995, it was renamed JavaScript which is still in trend.

What is JavaScript?

JavaScript is a client-side scripting language used with HTML (Hypertext Markup Language). JavaScript is an Interpreted / Oriented language called JS in programming language JavaScript code can be run on any normal web browser. To run the code of JavaScript, we have to enable JavaScript of Web Browser. But some web browsers already have JavaScript enabled.

Today almost all websites are using it as web technology, mind is that there is maximum scope in JavaScript in the coming time, so if you want to become a programmer, then you can be very beneficial to learn JavaScript.

JavaScript Hello World Program

In JavaScript, ‘document.write‘ is used to represent a string on a browser.

<script type="text/javascript">
	document.write("Hello World!");
</script>

How to comment JavaScript code?

  • For single line comment in JavaScript we have to use // (double slashes)
  • For multiple line comments we have to use / * – – * /
<script type="text/javascript">

//single line comment

/* document.write("Hello"); */

</script>

Advantages and Disadvantages of JavaScript

#javascript #javascript code #javascript hello world #what is javascript #who invented javascript

Hire Dedicated JavaScript Developers -Hire JavaScript Developers

It is said that a digital resource a business has must be interactive in nature, so the website or the business app should be interactive. How do you make the app interactive? With the use of JavaScript.

Does your business need an interactive website or app?

Hire Dedicated JavaScript Developer from WebClues Infotech as the developer we offer is highly skilled and expert in what they do. Our developers are collaborative in nature and work with complete transparency with the customers.

The technology used to develop the overall app by the developers from WebClues Infotech is at par with the latest available technology.

Get your business app with JavaScript

For more inquiry click here https://bit.ly/31eZyDZ

Book Free Interview: https://bit.ly/3dDShFg

#hire dedicated javascript developers #hire javascript developers #top javascript developers for hire #hire javascript developer #hire a freelancer for javascript developer #hire the best javascript developers

Niraj Kafle

1589255577

The essential JavaScript concepts that you should understand

As a JavaScript developer of any level, you need to understand its foundational concepts and some of the new ideas that help us developing code. In this article, we are going to review 16 basic concepts. So without further ado, let’s get to it.

#javascript-interview #javascript-development #javascript-fundamental #javascript #javascript-tips

Duong Tran

Duong Tran

1660465800

Ủy Quyền Sự Kiện Bằng JavaScript

1. Tại sao phải tổ chức sự kiện?

Hãy ghi lại một thông báo vào bảng điều khiển khi một nút HTML được nhấp vào.

Để làm cho nó hoạt động, bạn cần chọn nút, sau đó sử dụng addEventListener()phương pháp để đính kèm trình nghe sự kiện:

<button id="buttonId">Click me</button>
<script>
  document.getElementById('buttonId')
    .addEventListener('click', () => console.log('Clicked!'));
</script>

Đó là cách để nghe các sự kiện trên một phần tử duy nhất, đặc biệt là một nút.

Điều gì về lắng nghe các sự kiện trên nhiều nút? Đây là cách triển khai có thể thực hiện:

<div id="buttons">
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
  <!-- buttons... -->
  <button class="buttonClass">Click me</button>
</div>
<script>
  const buttons = document.getElementsByClassName('buttonClass');
  for (const button of buttons) {
    button.addEventListener('click', () => console.log('Clicked!'));
  }
</script>

Hãy xem bản demo Codesandbox để xem nó hoạt động như thế nào.

Danh sách các nút được lặp lại for (const button of buttons)và một trình nghe mới được đính kèm vào mỗi nút. Ngoài ra, khi một nút được thêm vào hoặc xóa khỏi danh sách, bạn phải xóa hoặc đính kèm trình xử lý sự kiện theo cách thủ công.

Có cách nào tốt hơn không?

May mắn thay, khi sử dụng mẫu ủy quyền sự kiện , việc lắng nghe các sự kiện trên nhiều phần tử chỉ yêu cầu một trình nghe sự kiện.

Đoàn sự kiện sử dụng các chi tiết cụ thể của cơ chế lan truyền sự kiện . Để hiểu cách thức hoạt động của ủy quyền sự kiện, tôi khuyên bạn nên tìm hiểu cách tuyên truyền sự kiện trước.

2. Truyền bá sự kiện

Khi bạn nhấp vào nút trong HTML sau:

<html>
  <body>
    <div id="buttons">
      <button class="buttonClass">Click me</button>
    </div>
  </body>
</html>

Sự kiện nhấp chuột được kích hoạt trên bao nhiêu phần tử? Không nghi ngờ gì nữa, chính nút đó sẽ nhận được một sự kiện nhấp chuột. Nhưng cũng có ... tổ tiên của tất cả các nút và thậm chí cả documentwindowcác đối tượng.

Sự kiện nhấp chuột lan truyền theo 3 giai đoạn:

  1. Giai đoạn nắm bắt - Bắt đầu từ và phần tử gốc window, documentsự kiện đi xuống qua tổ tiên của phần tử đích
  2. Giai đoạn mục tiêu - Sự kiện được kích hoạt trên phần tử mà người dùng đã nhấp vào
  3. Giai đoạn bong bóng - Cuối cùng, sự kiện bong bóng thông qua tổ tiên của phần tử đích cho đến phần tử gốc document, và window.

Tuyên truyền sự kiện JavaScript

Đối số thứ ba captureOrOptionscủa phương pháp:

element.addEventListener(eventType, handler[, captureOrOptions]);

cho phép bạn nắm bắt các sự kiện từ các giai đoạn khác nhau.

  • Nếu captureOrOptionsđối số bị thiếu falsehoặc { capture: false }, thì người nghe nắm bắt các sự kiện của các giai đoạn đích và bong bóng
  • Nếu đối số là truehoặc { capture: true }, thì người nghe sẽ lắng nghe các sự kiện của giai đoạn nắm bắt .

Trình xử lý sự kiện sau sẽ lắng nghe các sự kiện nhấp chuột trong giai đoạn chụp xảy ra trên <body>phần tử:

document.body.addEventListener('click', () => {
  console.log('Body click event in capture phase');
}, true);

Trong bản demo Codesandbox này , khi nhấp vào nút, bạn có thể thấy trong bảng điều khiển cách sự kiện lan truyền.

Ok, truyền sự kiện giúp nắm bắt các sự kiện của nhiều nút như thế nào?

Thuật toán rất đơn giản: gắn trình nghe sự kiện vào nút cha của các nút và bắt sự kiện sôi sục khi một nút được nhấp. Đây chính xác là cách hoạt động của phái đoàn sự kiện.

3. Đoàn sự kiện

Hãy sử dụng ủy quyền sự kiện để bắt các lần nhấp vào nhiều nút:

<div id="buttons"> <!-- Step 1 -->
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
  <!-- buttons... -->
  <button class="buttonClass">Click me</button>
</div>
<script>
  document.getElementById('buttons')
    .addEventListener('click', event => { // Step 2
      if (event.target.className === 'buttonClass') { // Step 3
        console.log('Click!');
      }
    });
</script>

Mở bản demo Codesandbox và nhấp vào bất kỳ nút nào - bạn sẽ thấy 'Click!'thông báo được ghi vào bảng điều khiển.

Ý tưởng của tổ chức sự kiện rất đơn giản. Thay vì gắn trực tiếp trình lắng nghe sự kiện vào các nút, bạn ủy quyền lắng nghe phụ huynh <div id="buttons">. Khi một nút được nhấp, trình lắng nghe của phần tử mẹ sẽ bắt được sự kiện sôi sục (nhớ lại sự lan truyền sự kiện?).

Sử dụng ủy quyền sự kiện yêu cầu 3 bước:

Bước 1. Xác định gốc của các phần tử cần theo dõi các sự kiện

Trong ví dụ trên, <div id="buttons">là phần tử cha của các nút.

Bước 2. Đính kèm trình xử lý sự kiện vào phần tử mẹ

document.getElementById('buttons') .addEventListener('click', handler)gắn trình nghe sự kiện vào phần tử cha của các nút. Trình nghe này phản ứng với các lần nhấp vào nút vì sự kiện nhấp vào nút bong bóng thông qua tổ tiên (nhờ sự lan truyền sự kiện).

Bước 3. Sử dụng event.target để chọn phần tử mục tiêu

Khi một nút được nhấp, hàm xử lý được gọi với một đối số: eventđối tượng. Thuộc tính event.targetlà phần tử mà sự kiện đã được gửi đi, trong ví dụ này là một nút:

  // ...
  .addEventListener('click', event => {
    if (event.target.className === 'buttonClass') {
      console.log('Click!');
    }
  });

Như một lưu ý phụ, hãy event.currentTargettrỏ đến phần tử mà người nghe sự kiện được đính kèm trực tiếp. Trong ví dụ, event.currentTarget<div id="buttons">.

Bây giờ bạn có thể thấy lợi ích của mô hình ủy quyền sự kiện: thay vì gắn người nghe vào mọi nút như đã được thực hiện trước đó , nhờ ủy quyền sự kiện, chỉ cần một người nghe sự kiện là cần thiết .

4. Tóm tắt

Khi một sự kiện nhấp chuột xảy ra (hoặc bất kỳ sự kiện nào khác lan truyền):

  • Sự kiện đi xuống từ window,, documentphần tử gốc và qua tổ tiên của phần tử đích (giai đoạn bắt giữ)
  • Sự kiện xảy ra trên mục tiêu (giai đoạn mục tiêu)
  • Cuối cùng, sự kiện bong bóng thông qua tổ tiên của mục tiêu cho đến phần tử gốc documentwindow(giai đoạn bong bóng).

Cơ chế này được đặt tên là sự lan truyền sự kiện .

Ủy quyền sự kiện là một mẫu hữu ích vì bạn có thể lắng nghe các sự kiện trên nhiều phần tử bằng cách sử dụng một trình xử lý sự kiện.

Để thực hiện công việc ủy ​​quyền sự kiện cần có 3 bước:

  1. Xác định gốc của các phần tử cần theo dõi các sự kiện
  2. Đính kèm trình xử lý sự kiện vào phần tử mẹ
  3. Sử dụng event.targetđể chọn các phần tử mục tiêu

 Nguồn: https://dmitripavlutin.com/javascript-event-delegation/

#javascript 

Ajay Kapoor

1626321063

JS Development Company India | JavaScript Development Services

PixelCrayons: Our JavaScript web development service offers you a feature-packed & dynamic web application that effectively caters to your business challenges and provide you the best RoI. Our JavaScript web development company works on all major frameworks & libraries like Angular, React, Nodejs, Vue.js, to name a few.

With 15+ years of domain expertise, we have successfully delivered 13800+ projects and have successfully garnered 6800+ happy customers with 97%+ client retention rate.

Looking for professional JavaScript web app development services? We provide custom JavaScript development services applying latest version frameworks and libraries to propel businesses to the next level. Our well-defined and manageable JS development processes are balanced between cost, time and quality along with clear communication.

Our JavaScript development companies offers you strict NDA, 100% money back guarantee and agile/DevOps approach.

#javascript development company #javascript development services #javascript web development #javascript development #javascript web development services #javascript web development company