jQuery的事件委托實(shí)例分析
事件委托主要是利用事件冒泡現(xiàn)象來實(shí)現(xiàn)的,對(duì)于事件委托的精準(zhǔn)的掌握,可以有利于提高代碼的執(zhí)行效率。先看一段代碼實(shí)例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>腳本之家</title> <style type="text/css"> table{ width:300px; height:60px; background-color:green; } table td{ background-color:white; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("td").bind("click",function(){ $(this).text("哈哈"); }) }) </script> </head> <body> <table cellspacing="1"> <tr> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> </tr> <tr> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> </tr> </table> </body> </html>
在以上代碼中,使用bind()方法為每一個(gè)td綁定了一個(gè)click事件處理函數(shù),這樣當(dāng)點(diǎn)擊單元格的時(shí)候,就會(huì)重新設(shè)置單元格中的文本。雖然此中方式實(shí)現(xiàn)了需要的效果,看起來非常的完美,其實(shí)并非這樣,如果當(dāng)單元格非常多時(shí)候,遍歷單元格和為每一個(gè)單元格綁定事件處理函數(shù)將會(huì)大大降低代碼的性能,如果讓單元格的父元素監(jiān)聽事件,只要判斷最初觸發(fā)事件的DOM元素是否是td即可。
代碼修改如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>腳本之家</title> <style type="text/css"> table{ width:300px; height:60px; background-color:green; } table td{ background-color:white; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("table").bind("click",function(e){ var target = e.target; $target=$(target); if ($target.is("td")){ $target.text('哈哈'); } }) }) </script> </head> <body> <table cellspacing="1"> <tr> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> </tr> <tr> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> <td>單元格</td> </tr> </table> </body> </html>
以上代碼實(shí)現(xiàn)了相同的功能,但是效率卻大大提高了。
總結(jié):所謂的事件委托,就是事件目標(biāo)自身不處理事件,而是把處理任務(wù)委托給其父元素或者祖先元素,甚至根元素。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- jQuery事件委托代碼實(shí)踐詳解
- JQuery事件委托原理與用法實(shí)例分析
- JavaScript之事件委托實(shí)例(附原生js和jQuery代碼)
- 淺談事件冒泡、事件委托、jQuery元素節(jié)點(diǎn)操作、滾輪事件與函數(shù)節(jié)流
- jQuery動(dòng)態(tài)追加頁面數(shù)據(jù)以及事件委托詳解
- jQuery事件委托之Safari
- jquery關(guān)于事件冒泡和事件委托的技巧及阻止與允許事件冒泡的三種實(shí)現(xiàn)方法
- jQuery代碼優(yōu)化 事件委托篇
- JQuery事件委托(適用于給動(dòng)態(tài)生成的腳本元素添加事件)
相關(guān)文章
jQuery插件zTree實(shí)現(xiàn)刪除樹子節(jié)點(diǎn)的方法示例
這篇文章主要介紹了jQuery插件zTree實(shí)現(xiàn)刪除樹子節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了jQuery樹形插件zTree針對(duì)節(jié)點(diǎn)的遍歷與刪除操作相關(guān)技巧,需要的朋友可以參考下2017-03-03用jQuery toggleClass 實(shí)現(xiàn)鼠標(biāo)移上變色
這篇文章主要介紹了用jQuery toggleClass 實(shí)現(xiàn)鼠標(biāo)移上變色,需要的朋友可以參考下2014-05-05jquery結(jié)合html實(shí)現(xiàn)中英文頁面切換
這篇文章主要為大家詳細(xì)介紹了jquery結(jié)合html實(shí)現(xiàn)中英文頁面切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11基于JQuery的數(shù)字改變的動(dòng)畫效果--可用來做計(jì)數(shù)器
之前用javascript做個(gè)計(jì)數(shù)器,從網(wǎng)上搜了搜,找不到合適的,就想著用jquery自己做一個(gè)2010-08-08jquery下動(dòng)態(tài)顯示jqGrid以及jqGrid的屬性設(shè)置容易出現(xiàn)問題的解決方法
jquery下動(dòng)態(tài)顯示jqGrid以及jqGrid的屬性設(shè)置容易出現(xiàn)問題的解決方法,使用jqgrid的朋友可以參考下。2010-10-10淺談struts1 & jquery form 文件異步上傳
下面小編就為大家?guī)硪黄獪\談struts1 & jquery form 文件異步上傳。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié)
jquery如何獲取地址欄參數(shù),改變地址欄樣式,接下來,通過本篇文章給大家分享jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié),需要的朋友可以參考下2015-08-08