jQuery的事件委托实例分析
事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率。先看一段代码实例:
<!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()方法为每一个td绑定了一个click事件处理函数,这样当点击单元格的时候,就会重新设置单元格中的文本。虽然此中方式实现了需要的效果,看起来非常的完美,其实并非这样,如果当单元格非常多时候,遍历单元格和为每一个单元格绑定事件处理函数将会大大降低代码的性能,如果让单元格的父元素监听事件,只要判断最初触发事件的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>
以上代码实现了相同的功能,但是效率却大大提高了。
总结:所谓的事件委托,就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素。
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关文章
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
本篇文章主要对jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)的使用做了简要分析说明。需要的朋友来看下吧2016-12-12Bootstrap table中toolbar新增条件查询及refresh参数使用方法
这篇文章主要介绍了Bootstrap table中toolbar新增条件查询及refresh参数使用方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-05-05jQuery中parents()和parent()的区别分析
这篇文章主要介绍了jQuery中parents()和parent()的区别,具体分析了parents()和parent()的原理与用法区别,非常具有实用价值,需要的朋友可以参考下2014-10-10
最新评论