js中的前绑定和后绑定详解


Posted in Javascript onAugust 01, 2013

 其主要意思就是看我有没有用过前绑定,即Dom树中的某些元素在还没有创建出来时,就指定该类型的元素一出生就应该拥有的某些事件。在实际开发过程中经常会涉及到前绑定和后绑定。顾名思义,前绑定——还未出生即绑定了某些事件,后绑定——出生后才会绑定的某些事件。
下面,通过一个简单的例子进行阐述,以供大家参考,并对各个方法进行比较:
页面元素:

<div id="main"> 
<a href="#">aaaaaaaaaaaaaaaaaaaaaa</a><br /> 
<a href="#">bbbbbbbbbbbbbbbbbbbb</a><br /> 
<a href="#">ccccccccccccccccccccccccc</a><br /> 
<a href="#">dddddddddddddddddddd</a><br /> 
<a href="#">eeeeeeeeeeeeeeeeeeeeee</a><br /> 
<a href="#">fffffffffffffffffffffffffffffffff</a><br /> 
<a href="#">gggggggggggggggggggg</a><br /> 
<a href="#">hhhhhhhhhhhhhhhhhhhh</a> 
</div> 
<input type="button" value="创建a标签" id="btnCreate" />

页面中的js:
<script src="201102/Scripts/jquery-1.5.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function () { 
//后绑定,即动态创建的元素不能拥有绑定的事件!!! 
//1.后绑定 
// $("#main > a ").click(function () { 
// alert($(this).html()); 
// }); 
//2.后绑定 
// $("#main > a").bind("click", function () { 
// alert($(this).text()); 
// }); 
//3.后绑定, 
// $("#main > a").bind({ 
// click: function () { alert($(this).text()); }, 
// mouseover: function () { $(this).css("background-color", "red") }, 
// mouseout: function () { $(this).css("background-color", "white") } 
// }); 
$("#btnCreate").bind({ 
click: function () { $("<br /><a href='#'>我是动态创建的</a>").appendTo("#main"); } 
}); 

//4.前绑定,动态创建的元素也拥有了点击的事件 
// $("#main").delegate("a", "click", function () { 
// alert($(this).text()); 
// }); 
//5.前绑定,live的事件源头的是documentdelegate的源头是具体要绑定的元素,所以delegate的效率比live高多了 
$("#main a").live("click", function () { 
alert($(this).text()); 
}); 
}); 
</script>
Javascript 相关文章推荐
javascript向flash swf文件传递参数值注意细节
Dec 11 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
分享12个非常实用的JavaScript小技巧
May 11 Javascript
微信小程序 PHP生成带参数二维码
Feb 21 Javascript
node.js利用redis数据库缓存数据的方法
Mar 01 Javascript
浅谈node的事件机制
Oct 09 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
vue2路由方式--嵌套路由实现方法分析
Mar 06 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 #Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 #Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 #Javascript
jquery实现带单选按钮的表格行选中时高亮显示
Aug 01 #Javascript
JavaScript定时器详解及实例
Aug 01 #Javascript
js渐变显示渐变消失示例代码
Aug 01 #Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 #Javascript
You might like
PHP无刷新上传文件实现代码
2011/09/19 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP类的反射用法实例
2014/11/03 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python3生成手写体数字方法
2018/01/30 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
公司新年寄语
2014/04/04 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
自主招生英文自荐信
2015/03/25 职场文书
歌剧魅影观后感
2015/06/05 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS