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事件
- jquery中如何使用事件委託?jQuery事件
- jQuery程式碼優化:事件委託篇jQuery優化事件
- 事件委託事件
- 委託、事件--委託例項篇事件
- 委託與事件-委託詳解(一)事件
- 事件模型和事件委託事件模型
- C# 事件委託C#事件
- C#事件委託事件
- 重中之重:委託與事件事件
- C# 委託事件C#事件
- Js 事件原理與事件委託JS事件
- JS事件流和事件委託JS事件
- 委託、Lambda表示式、事件系列07,使用EventHandler委託事件
- C#委託與事件C#事件
- JavaScript 事件委託詳解JavaScript事件
- C# 事件 vs 委託C#事件
- 委託與事件-事件詳解(二)事件
- 委託、Lambda表示式、事件系列01,委託是什麼,委託的基本用法,委託的Method和Target屬性事件
- 委託、Lambda表示式、事件系列05,Action委託與閉包事件
- 委託、Lambda表示式、事件系列04,委託鏈是怎樣形成的, 多播委託, 呼叫委託鏈方法,委託鏈異常處理事件
- js--事件流、事件委託、事件階段JS事件
- JavaScript 事件委託或者事件代理介紹JavaScript事件
- 事件的捕獲、冒泡、委託事件
- C# 之委託與事件C#事件
- javascript中的事件委託(代理)JavaScript事件
- Zepto事件委託的小坑事件
- js 事件的冒泡和委託JS事件
- 委託、Lambda表示式、事件系列03,從委託到Lamda表示式事件
- 事件委託---動態建立的元素新增事件事件
- 委託、Lambda表示式、事件系列02,什麼時候該用委託事件
- 事件委託詳解最新版事件
- 對js事件委託的瞭解JS事件
- .NET委託,事件和Lambda表示式事件
- javascript事件委託程式碼例項JavaScript事件
- unity 委託事件簡單應用Unity事件
- C#:委託和自定義事件C#事件