jQuery的事件委托實(shí)例分析
事件委托主要是利用事件冒泡現(xiàn)象來(lái)實(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)了需要的效果,看起來(lái)非常的完美,其實(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)追加頁(yè)面數(shù)據(jù)以及事件委托詳解
- jQuery事件委托之Safari
- jquery關(guān)于事件冒泡和事件委托的技巧及阻止與允許事件冒泡的三種實(shí)現(xiàn)方法
- jQuery代碼優(yōu)化 事件委托篇
- JQuery事件委托(適用于給動(dòng)態(tài)生成的腳本元素添加事件)
相關(guān)文章
基于JQuery.timer插件實(shí)現(xiàn)一個(gè)計(jì)時(shí)器
基于JQuery.timer插件實(shí)現(xiàn)一個(gè)計(jì)時(shí)器,需要的朋友可以參考下。2010-04-04
jQuery實(shí)現(xiàn)的簡(jiǎn)單無(wú)刷新評(píng)論功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的簡(jiǎn)單無(wú)刷新評(píng)論功能,涉及jQuery事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下2017-11-11
jQuery 實(shí)現(xiàn)評(píng)論等級(jí)好評(píng)差評(píng)特效
本文主要介紹如何實(shí)現(xiàn)類似淘寶好評(píng)差評(píng)的效果,需要的小伙伴直接拿去用吧。2016-05-05
動(dòng)態(tài)標(biāo)簽 懸停效果 延遲加載示例代碼
懸停效果、延遲加載想必大家都有見到過吧,在本文將為大家介紹下是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過2013-11-11
jQuery html() in Firefox (uses .innerHTML) ignores DOM chang
Firefox doesn't update the value attribute of a DOM object based on user input, just its valueproperty - pretty quick work around exists.2010-03-03
基于jQuery實(shí)現(xiàn)的仿百度首頁(yè)滑動(dòng)選項(xiàng)卡效果代碼
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)的仿百度首頁(yè)滑動(dòng)選項(xiàng)卡效果代碼,涉及jQuery響應(yīng)鼠標(biāo)事件實(shí)現(xiàn)頁(yè)面元素動(dòng)態(tài)變換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11

