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ù)委托給其父元素或者祖先元素,甚至根元素。
以上所述就是本文的全部內(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-05
jquery結(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-08
jquery下動(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-05
jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié)
jquery如何獲取地址欄參數(shù),改變地址欄樣式,接下來,通過本篇文章給大家分享jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié),需要的朋友可以參考下2015-08-08

