根据jQuery的官方描述,live方法在1.7中已经不建议使用,在1.9中删除了这个方法。并建议在以后的代码中使用on方法来替代。
  on方法可以接受三个参数:事件名、触发选择器、事件函数。

需要特别注意的是:on方法中间的这个触发选择器就是你将要添加的HTML元素的类名、id或者元素名,使用它就可以实现live的效果。

例如我的html文档中已经有了一个id为parent的div,我将要在这个div内部再动态添加一个class为son的span,然后我为这个span绑定一个事件,那么我需要这样写:

$('#parent').on('click','.son',function(){alert('test')});

这个触发选择器实际上就是在 JQ内部判断了一次事件参数的$(e.target).is(selector),只有触发对象匹配触发选择器才会触发。这是利用了事件冒泡的机制来完成 的,原本的live也是使用冒泡机制所以既然on可以实现那么live也就没有存在的必要了,只不过为了兼容让它从1.7苟延残喘的活到了1.9而已。

贴一个小项目的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>会员信息模块</title>
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
<style type="text/css">
* {
font-size: 12px;
} tr {
text-align: center;
height: 40px;
}
</style> </head>
<body>
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#EBE7DC">
<td><input type="checkbox"/></td>
<td>姓名</td>
<td>性别</td>
<td>卡号</td>
<td>会员级别</td>
<td>电话号码</td>
<td>出生年月日</td>
<td>消费金额</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#FAF3E9">
<td><input type="checkbox"/></td>
<td>张三</td>
<td>男</td>
<td>6565654315321321</td>
<td>短工</td>
<td>18625455412</td>
<td>1995-12-09</td>
<td>10,000.00</td>
<td><img class='add' src="data:images/add.jpg"/> <img class='del' src="data:images/del.jpg"/></td>
</tr>
<tr bgcolor="#FEFAF7">
<td><input type="checkbox"/></td>
<td>张三</td>
<td>男</td>
<td>6565654315321321</td>
<td>短工</td>
<td>18625455412</td>
<td>1995-12-09</td>
<td>10,000.00</td>
<td><img class='add' src="data:images/add.jpg"/> <img class='del' src="data:images/del.jpg"/></td>
</tr>
<tr bgcolor="#FAF3E9">
<td><input type="checkbox"/></td>
<td>张三</td>
<td>男</td>
<td>6565654315321321</td>
<td>短工</td>
<td>18625455412</td>
<td>1995-12-09</td>
<td>10,000.00</td>
<td><img class='add' src="data:images/add.jpg"/> <img class='del' src="data:images/del.jpg"/></td>
</tr>
</table>
<a href="#" class='newone'>新增</a>
<script>
//动态添加行用on,不能用动态的tr,要用原来存在的元素去取值
$("table").on("click",".del",function () {
$(this).parents("tr").remove();
})
$(".newone").click(function () {
$("table").append('<tr bgcolor="#FAF3E9">'
+ ' <td><input type="checkbox"/></td>'
+ ' <td>张三</td>'
+ ' <td>男</td>'
+ ' <td>6565654315321321</td>'
+ ' <td>短工</td>'
+ ' <td>18625455412</td>'
+ ' <td>1995-12-09</td>'
+ ' <td>10,000.00</td>'
+ ' <td>'
+ ' <img class=\'add\' src="data:images/add.jpg" />'
+ ' <img class=\'del\' src="data:images/del.jpg" />'
+ ' </td>'
+ ' </tr>')
}
)
</script>
</body>
</html>
												

live事件的替代方法on的使用注意事项的更多相关文章

  1. mousewheel事件的兼容方法

    在垂直方向上滚动页面时,会触发mousewheel事件,这个事件会在任何元素上触发,最终都会冒泡到document(IE8)或window(IE9+及其他主流现代浏览器)对象. 在给元素指定mouse ...

  2. iOS中的过期方法和新的替代方法

    关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ...

  3. jQuery绑定以及解除时间方法总结,以及事件触发的方法

     一   off()和on()          $("obj").on(event,[sesect],[data],fn);一般情况下参数只有两个,事件以及事件的处理函数     ...

  4. 给ul中的li添加事件的多种方法

    给ul中的li添加事件的多种方法 这是一个常见,而且典型的前端面试题 <ul> <li>11111</li> <li>22222</li> ...

  5. spring替代方法

    总结spring替代方法的使用 MyValueCalculator类中的computerValue方法将会被替代 public class MyValueCalculator { public Str ...

  6. JQ绑定事件(1.9已经废除了live()等绑定事件方法,on()方法是官方推荐的绑定事件的一个方法)

    本文来源:http://www.cnblogs.com/leejersey/p/3545372.html jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(ev ...

  7. Windows Server 2008中关闭事件跟踪程序的方法

    Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...

  8. jQuery-委托事件和on方法注册事件

    delegate注册委托事件 delegate--代理.委托 事件代理----事件最终不是由$("#first")执行,它只是代理元素 第一个参数:最终发生事件的元素 第二个参数: ...

  9. Android中getDrawable和getColor过时的替代方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 Android SDK 升级到 23 之后,getDrawable和getColor方法提示过时. 解决方案 getResources(). ...

随机推荐

  1. C指针1

    //定义:指针是一个特殊的数据类型,指针指向内存中的地址,因此,指针变量存储的是内存中的一个地址 //例子,%p表示打印一个地址,打印p表示打印p指向的地址 //输出结果为0x7fff5fbff7dc ...

  2. [补档]暑假集训D8总结

    %dalao 今天有两位大佬来讲课,meaty来讲了Catalan(本来说好的莫比乌斯反演呢),聪聪来讲Splay呢 至于听课笔记= =,没来得及记= = 不过好不想上树啊,上了树就下不来了 考试 仍 ...

  3. [补档]从OI学麻将

    背景 作为一名川娃子,怎么能不懂麻将呢= = T1 さきなに~~ [咲 -Saki-] 天才麻将少女什么编 题目 二十一世纪,世界上的麻将竞技人数超过一亿,日本每年也有大规模的全国大赛来对麻将选手进行 ...

  4. Python 导入模块

    导入模块 方法1:import  模块名                      //导入整个模块,调用方法时,需要加上模块名 方法2:from  模块名  import  方法           ...

  5. git版本控制 for window安装和命令行使用

    Git 安装配置 Windows 平台上安装 在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行 ...

  6. 万能头文件#include

    #include<bits/stdc++.h>包含了目前c++所包含的所有头文件!!!! 测试结果POJ不支持HDU,NYOJ支持

  7. node中使用es6/7/8 --- 支持性与性能

    前言 这几年react.vue的快速发展,越来越多的前端开始讲es6的代码运用在项目中,因为我们可以通过babel进行转译为低版本的js以便于运行在所有浏览器中,import.export.let.箭 ...

  8. [SCOI2007]压缩 区间dp

    明显是个区间dp,但是我区间dp就是个渣... f[i][j]表示区间i到j最短的字符长度:假设前面加了个M,所以初始化f[i][i]=2;当然最开始是不算M的,所以f[1][1]=1;然后就可以区间 ...

  9. 菜鸟帮你跳过openstack配置过程中的坑

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  10. jmeter - 断言

    jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言 ...