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-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
div+css布局的图片连续滚动js实现代码
May 04 Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
js的[defer]和[async]属性
Nov 24 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php中计算程序运行时间的类代码
2012/11/03 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python构建网页爬虫原理分析
2017/12/19 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python生成带有表格的图片实例
2019/02/03 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
python如何变换环境
2020/07/21 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
3个CCIE对一个工程师的面试题
2012/05/06 面试题
股权转让协议书范本
2014/04/12 职场文书
经典导游欢迎词
2015/01/26 职场文书
安全生产培训心得体会
2016/01/18 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL