锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / JQuery / 事件委托
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

简介


事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率。

实例

先看一段代码实例:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="utf-8">  
<meta name="author" content="http://www.51texiao.cn/" />  
<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()方法为每一个td绑定了一个click事件处理函数,这样当点击单元格的时候,就会重新设置单元格中的文本。虽然此中方式实现了需要的效果,看起来非常的完美,其实并非这样,如果当单元格非常多时候,遍历单元格和为每一个单元格绑定事件处理函数将会大大降低代码的性能,如果让单元格的父元素监听事件,只要判断最初触发事件的DOM元素是否是td即可。

代码修改如下:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="utf-8">  
<meta name="author" content="http://www.51texiao.cn/" />  
<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>  
</table>  
</body>  
</html>

以上代码实现了相同的功能,但是效率却大大提高了。
总结: 所谓的事件委托,就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素。

早委托

通过早委托的方式,我们可以做到不必扫描复杂的DOM结构而在早期绑定事件。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内