javaScript进阶-事件委派javascript
2012-01-09 05:31
155 查看
这篇文章的原稿来自于 http://www.aqee.net/seven-javascript-things-i-wish-i-knew-much-earlier-in-my-career/ 对其中的事件委派做一些自己的理解:
当页面上某个元素上的事件触发时,而在 dom 继承关系上,这个元素的所有子元素也能接收到这个事件,这时你可以使用一个在父元素上的事件处理器来处理,而不是使用一堆的各个子元素上的事件监听器来处理。
hrml代码如下
1h2>
2great web resourcesh2>
3ul id="resources">
4li>a href="http://www.zhihu.com">opera web standards curriculuma>li>
5li>a href="http://sitepoint.com">sitepointa>li>
6li>a href="http://alistapart.com">a list aparta>li>
7li>a href="http://yuiblog.com">yui bloga>li>
8li>a href="http://blameitonthevoices.com">blame it on the voicesa>li>
9li>a href="http://oddlyspecific.com">oddly specifica>li>
10ul>
javascript代码如下
通过循环这些链接,将每个链接上附加一个事件处理器
$(document).ready(function () {
var resources = document.getelementbyid("resources");
var links = resources.getelementsbytagname("a");
var all = links.length;
for (var i = 0; i
function handler(e) {
var x = e.target; //get the link that was clicked the dom element that initiated the event
alert(x);
e.preventdefault();//阻止事件的默认操作
}
注意这里的
1 e.target返回的实际是一个dom对象
2 e.preventdefault();//阻止事件的默认操作 上述例子中如果少了这一句设置,点击链接后会跳转到相应的页面
这种方法的好处并不是仅限于把多个事件处理器缩减为一个。你想想,举个例子,你需要动态的往这个链接表里追加更多的链接。使用事件委托后,你就不需要做其它修改了;否则的话,你需要重新循环这个链接表,重新给每个链接安装事件处理器。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
当页面上某个元素上的事件触发时,而在 dom 继承关系上,这个元素的所有子元素也能接收到这个事件,这时你可以使用一个在父元素上的事件处理器来处理,而不是使用一堆的各个子元素上的事件监听器来处理。
hrml代码如下
1h2>
2great web resourcesh2>
3ul id="resources">
4li>a href="http://www.zhihu.com">opera web standards curriculuma>li>
5li>a href="http://sitepoint.com">sitepointa>li>
6li>a href="http://alistapart.com">a list aparta>li>
7li>a href="http://yuiblog.com">yui bloga>li>
8li>a href="http://blameitonthevoices.com">blame it on the voicesa>li>
9li>a href="http://oddlyspecific.com">oddly specifica>li>
10ul>
javascript代码如下
通过循环这些链接,将每个链接上附加一个事件处理器
$(document).ready(function () {
var resources = document.getelementbyid("resources");
var links = resources.getelementsbytagname("a");
var all = links.length;
for (var i = 0; i
function handler(e) {
var x = e.target; //get the link that was clicked the dom element that initiated the event
alert(x);
e.preventdefault();//阻止事件的默认操作
}
注意这里的
1 e.target返回的实际是一个dom对象
2 e.preventdefault();//阻止事件的默认操作 上述例子中如果少了这一句设置,点击链接后会跳转到相应的页面
这种方法的好处并不是仅限于把多个事件处理器缩减为一个。你想想,举个例子,你需要动态的往这个链接表里追加更多的链接。使用事件委托后,你就不需要做其它修改了;否则的话,你需要重新循环这个链接表,重新给每个链接安装事件处理器。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章推荐
- javaScript进阶-事件委派
- JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数
- 由浅入深JavaScript12进阶-事件2
- JavaScript进阶之事件
- javascript基础(事件的委派)(三十三)
- JavaScript 进阶学习 4 事件
- JavaScript学习笔记 - 进阶篇(5)- 事件响应
- JavaScript进阶:深入理解事件与事件流
- JavaScript的事件和委派
- Javascript 事件对象进阶(二)拖拽的应用 - 登录框的拖拽
- Javascript事件处理进阶
- Javascript 事件对象进阶(一)拖拽的原理
- JavaScript事件监听进阶两实例
- 从零开始学_JavaScript_系列(十一)——dojo(4)(GRID表格进阶:格式化、style、数据获取、多重排序、点击事件)
- javascript 事件委派
- 在 JavaScript 中监听 IME 键盘输入事件
- javascript 触发事件列表
- javascript之事件模型
- JavaScript事件详解