jQuery中对未来的元素绑定事件
对未来的元素绑定事件不能用bind,
1、可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了。
2、推荐用on代替(注:1.7及以上的版本才支持)。用法:on(events,[selector],[data],fn)
//放在$(function(){})里才有效
$(document).on("click", "#testDiv", function(){
//此处的$(this)指$( "#testDiv"),而非$(document)
});
3、 当只想为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数时,用.one()代替on就可以了,注意不是在所有的[selector]上都可以执行一次,而是在这些[select]上总共也就执行一次,对未来的元素也有效。
4、如果某个div里有增删改三个按钮需要绑定事件,像下面这些写:
$('#btn-add').click(function(){});
$('#btn-del').click(function(){});
$('#btn-edit').click(function(){});
这样写的坏处:看不出三者的结构联系,没有利用事件冒泡。
看看CoffeeDeveloper的对jQuery的事件绑定的一些思考推荐的方法吧,可以写成这样:
$("#btnContainer").coffee({
  click: {
           "#btn-add":  function(){ //do something },
           "#btn-del":   function(){ //do something },
            "#btn-edit": function(){ //do something }
   } ,
   mouseenter:{
             "#btn-abc":  function(){ //do something },
   }
});        
这样写是不是好看多了,(.coffee()是自定义的函数,你能自己写出这个函数吗?),只是如果绑定的function比较长的话,感觉代码看起来还是有点乱,评论中的
$('#btnContainer')
 .on('click','#btn-add', function(){})
 .on('click','#btn-del', function(){})
 .on('click','#btn-edit',function(){});    
这种写法也避免了上文提到的两个坏处,看起来也不乱了。
jQuery中对未来的元素绑定事件的更多相关文章
- jQuery中对未来的元素绑定事件用bind、live or on
		对未来的元素绑定事件不能用bind, 1.可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了. 2.推荐用on代 ... 
- jQuery中对未来的元素绑定事件用 on
		最近项目需要点击弹窗里面的a标签出现外连接跳转提示 <a href="javascript:void(0);" target="_blank" id=&q ... 
- WEB前端技巧之JQuery为动态添加的元素绑定事件.md
		jquery 为动态添加的元素绑定事件 如果直接写click函数的话,只能把事件绑定在已经存在的元素上,不能绑定在动态添加的元素上 可以用delegate来实现 .delegate( select ... 
- jQuery 为动态添加的元素绑定事件
		在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件.像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是 ... 
- 关于 jquery html 动态添加的元素绑定事件——On()
		Ajax动态生成的数据,动作绑定需要重新执行 $(document).on('click','.btn1',function(){}); 替换: $('btn1').on('click') = fun ... 
- jquery给动态生成的元素绑定事件,on函数
		首先先解释一下什么是动态生成的元素:动态生成的元素即我们用jquery的内部插入函数append()所生成的html代码.相对的也有静态生成的元素:即直接编写在页面的html代码. 下面通过例子来讲解 ... 
- jquery html动态添加的元素绑定事件详解
		在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况: <div id="testdiv"> <ul></ul> </div&g ... 
- jQuery给动态添加的元素绑定事件的方法
		我们在开发过程会遇到无法给动态元素添加绑定事件,解决方案如下: 例如 <div id="testdiv"> <ul></ul> </d ... 
- jQuery对 动态添加 的元素 绑定事件(on()的用法)
		从jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的(官方推荐)首选方法. 当浏览器下载完一个页面的时候就开始渲染(翻译)HTML标签,然后执行css.js代码,在执行js代 ... 
随机推荐
- iOS开发工具——统计Crash的工具Crashlytics-备用
			简介 Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具.Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Pa ... 
- android adb 常用指令
			转自:http://www.cnblogs.com/playing/archive/2010/09/19/1830799.html Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你 ... 
- 利用FbinstTool+大白菜u盘工具,制作多系统启动U盘【转】
			一般制作多系统启动盘的教程都会要用到rub4dos+grubinst+ultraiso+msgdiyerl等等工具,一大串的工具列表让人望而生畏.其实大白菜里已经对这些工具做了非常好的封装,利用大白菜 ... 
- 为什么c程序里一定要写main函数
			一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号’_main’. 那么这个错误信息可能与文件c0s.ob ... 
- ffdshow 源代码分析1 : 整体结构
			ffdshow是一个非常强大的DirectShow解码器,封装了ffmpeg,libmpeg2等解码库.它也提供了丰富的加工处理选项,可以锐化画面,调节画面的亮度等等.不止是视频,FFDShow现在同 ... 
- Linux下的QQ折腾记
			用Linux最重要是要把QQ装好了,webqq很不好用.qq for linux是古董,Linux还是悲惨,很多软件有windows版本,有mac版本,就是不出linux版本.只好用wine来 ... 
- HDOJ(HDU) 1587 Flowers(水、、)
			Problem Description As you know, Gardon trid hard for his love-letter, and now he's spending too muc ... 
- HDOJ 1236 排名(练耐心题)
			Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通 ... 
- cf435A Queue on Bus Stop
			A. Queue on Bus Stop time limit per test 1 second memory limit per test 256 megabytes input standa ... 
- HDU5126---stars (CDQ套CDQ套 树状数组)
			题意:Q次操作,三维空间内 每个星星对应一个坐标,查询以(x1,y1,z1) (x2,y2,z2)为左下顶点 .右上顶点的立方体内的星星的个数. 注意Q的范围为50000,显然离散化之后用三维BIT会 ... 
