jQuery 事件委託
所謂事件委託正如其名,自己的事情"委託"給別人做,是利用事件冒泡現象來實現的。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> table { width: 300px; height: 60px; background-color: green; } table td { background-color: white; } </style> <script src="https://code.jquery.com/jquery-3.0.0.js"></script> <script type="text/javascript"> $(document).ready(function () { $("td").click(function () { $(this).text("螞蟻部落"); }) }) </script> </head> <body> <table cellspacing="1"> <tr> <td>單元格一</td> <td>單元格二</td> <td>單元格三</td> <td>單元格四</td> </tr> <tr> <td>單元格五</td> <td>單元格六</td> <td>單元格七</td> <td>單元格八</td> </tr> </table> </body> </html>
為每一個td繫結click事件處理函式,點選單元格的時候,會重新設定單元格中的文字。
看起來非常的完美,其實並非這樣,如果當單元格非常多時候,遍歷單元格和為每一個單元格繫結事件處理函式將會大大降低程式碼的效能,如果讓單元格的父元素監聽事件,只要判斷最初觸發事件的元素是否是td即可。
程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> table { width: 300px; height: 60px; background-color: green; } table td { background-color: white; } </style> <script src="https://code.jquery.com/jquery-3.0.0.js"></script> <script type="text/javascript"> $(document).ready(function () { $("table").click(function (ev) { var target = ev.target; if ($(target).is("td")) { $(target).text('螞蟻部落'); } }) }) </script> </head> <body> <table cellspacing="1"> <tr> <td>單元格一</td> <td>單元格二</td> <td>單元格三</td> <td>單元格四</td> </tr> <tr> <td>單元格五</td> <td>單元格六</td> <td>單元格七</td> <td>單元格八</td> </tr> </table> </body> </html>
以上程式碼實現了相同的功能,但是效率卻大大提高了;本來td自己要做的事情,交付給table做。
相關文章
- JQuery7:事件委託jQuery事件
- jquery中如何使用事件委託?jQuery事件
- 事件委託事件
- 委託與事件-委託詳解(一)事件
- 事件模型和事件委託事件模型
- wpf移除事件委託事件
- Js 事件原理與事件委託JS事件
- JS事件流和事件委託JS事件
- 委託與事件-事件詳解(二)事件
- js中的事件委託JS事件
- c# 委託和事件C#事件
- C# - 委託與事件C#事件
- C#委託與事件C#事件
- js--事件流、事件委託、事件階段JS事件
- 事件的捕獲、冒泡、委託事件
- C#基礎之委託,事件C#事件
- 詳解C#委託與事件C#事件
- .NET委託,事件和Lambda表示式事件
- 事件委託詳解最新版事件
- 對js事件委託的瞭解JS事件
- JavaScript 中的閉包和事件委託JavaScript事件
- 詳解C#委託和事件(二)C#事件
- 詳解C#委託和事件(一)C#事件
- C#.Net築基-解密委託與事件C#解密事件
- C#規範整理·泛型委託事件C#泛型事件
- 委託
- # 委託
- .NET進階篇02-Delegate委託、Event事件事件
- C# 從1到Core--委託與事件C#事件
- 來個簡單的事件委託 冒個泡事件
- C# 委託原理刨析,外加和事件對比C#事件
- [靈性程式設計]函式委託,自動事件程式設計函式事件
- 徹底搞清楚c#中的委託和事件C#事件
- 通過釋出訂閱模式實現的事件委託模式事件
- 觀察者模式與.Net Framework中的委託與事件模式Framework事件
- [JavaScript] 事件委託以及 Vue 列表迴圈事件繫結的效能最佳化JavaScript事件Vue
- Java-委託Java
- C#委託C#
- 行為委託