什么是jQuery的事件委托

什么是jQuery的事件委托:

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

<!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>
  <tr>
    <td>单元格</td>
    <td>单元格</td>
    <td>单元格</td>
    <td>单元格</td>
    <td>单元格</td>
  </tr>
</table>
</body>
</html>

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

原文地址是:http://www.51texiao.cn/javascriptjiaocheng/2015/0428/328.html

最为原始地址是:http://www.softwhy.com/

时间: 2024-10-12 19:32:52

什么是jQuery的事件委托的相关文章

JS与Jquery的事件委托机制

传送:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).

JS与Jquery的事件委托

参考:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).

jQuery的事件委托实例分析

事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率.先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>脚本之家</title> <style type="text/css"> table{ width:300px; height:60px; backg

jQuery代码优化 事件委托篇

<转自 http://www.jb51.net/article/28770.htm> 参考文章:  解密jQuery事件核心 - 绑定设计(一) 参考文章:  解密jQuery事件核心 - 绑定设计(二) jQuery为绑定和委托事件提供了.bind()..live()和.delegate()方法.本文在讨论这几个方法内部实现的基础上,展示它们的优劣势及适用场合. 事件委托 事件委托的事例在现实当中比比皆是.比如,有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快

jQuery的事件委托和this、$(this)

首先什么是事件委托,一般我们设置事件监听的时候都是在需要触发事件的节点上设置.假设一个nav节点下有几十上百个li标签,就算使用循环绑定都是相当耗费内存,使页面速度下降.为了解决这个问题可以使用事件委托,将事件委托给他们共同的父元素节点ul上,通过事件的冒泡将事件传递到点击节点的父节点ul上,从而触发事件. //需要绑定事件的nav标签 <nav> <a href="jq_load.html">HOME</a> <a href="jq

JQuery的事件委托;jQuery注册事件;jQuery事件解绑

一.事件 ①事件委托:就是给子元素的父元素或者祖先元素注册一个事件,但是事件的执行者是子元素,委托事件的好处是能够给动态创建出来时元素也加上事件. ②简单事件:就是给自己注册事件自己执行动态创建出来的事件不会有事件. ③使用方法:$("span").on("click",function(){alert("这是一个简单事件");}): $("div").on("click", "span"

关于jquery的事件委托-bind,live,delegate,on的区别发展

1.bind()方法 (只能给已经存在的元素上绑定事件) 只能给调用它的时候已经存在的元素绑定事件,不能给未来新增的元素绑定事件. $('ul li').bind('click', function(){ $(this).addClass('active').siblings().removeClass('active'); }); 2.live()方法(绑定到document DOM节点上.和.bind()的优势是支持动态数据) jQuery 1.3新增的.live()方法代替.bind()方

js和jquery中的事件委托

[转+自己的修改] 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签

Jquery事件委托之Safari

什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数. //常见的事件绑定(Jquery) $(element).click(function(){ //do something }) //事件委托(Jquery) $(parents).on("click",element,function(){ //do something }) 事件委托的原理 事件委托将事件监听绑定在目标元