javascript事件与委托
浏览模式: 标准 | 列表全部文章
div 滚动条点击事件处理
Submitted by chen0908 on 2012, May 23, 10:21 AM
在用div模拟各种效果时候,div拥有滚动条,点击滚动条并不会触发 div的click事件。(火狐内核可以) 替代解决方案可以把click 换成 Focus事件。div本身Focus事件是不能被激活的,需要在div上有 tabindex属性。
Tags: 滚动条, click, div
CSS&JS学习 | 评论:0 | Trackbacks:0 | 阅读:537
for in 在webkit内核下面的特殊
Submitted by chen0908 on 2012, May 23, 10:17 AM
for in循环如果遍历的对象的属性名是可以自动转换为数值型的字符串,在webkit下面会自动排序。
var json={"2":2,"4":"4","6":6,"1":1};
var html="";
for(var a in json){
html+=json[a]
}
alert(html);
ie浏览器输入的是 2461,webkit内核输入的是1234 解决方案是把属性名换成不能自动转换成数值的字符串比如说 _2 _4 _6 _1
Tags: for in, chrome, webkit
CSS&JS学习 | 评论:0 | Trackbacks:0 | 阅读:417
javascript 事件委托
Submitted by chen0908 on 2011, October 18, 11:59 AM
7. 事
其中提到了一个非常重要的概念就是事件委托。事件委托的概念是基于事件触发的冒泡机制的。
XML/HTML代码
1.
2.
3.
4.
5.
6.
7.
8.$(function(){
9. $('*').click(function(){
10. alert(this.innerHTML);
11. })
12. })
13.
14.
15.
16.
17.
18.
19.
在以前firefox还有一个事件捕捉机制,事件捕捉机制就是先从最顶层的元素一层一层向子元素触发。但是我用这个demo在新版本的firefox里面没有检查出来。。《JavaScript高级程序设计》第一版里面提及到的,firefox采用的先捕捉,在冒泡的机制。不过现在测试这个demo并没有发现捕获动作(在firefox 最新版本里面测试demo,点击span的时候并没有先打印出html的click事件内容。)
事件委派实际上基于冒泡机制,任何一个子元素的事件,都会冒泡到父元素。事件委派的概念就是当子元素自身触发一个事件以后,Javascript并没有给子元素提供事件响应,等子元素的事件冒泡到父元素,这个时候Javascript给父元提供事件响应,由父元素的事件来处理子元素的事情。也就是说,把本来应该子元素自己完成的事件,委派给父元素去完成。
demo2:传统的事件绑定。
XML/HTML代码
1.
2.
4.
5.
6.
7.
8.
9.
Javascript书籍
10.
- Javascript基础教程
- Javascript权威指南(第五版)
- Javascript高级程序设计
- Javascript核心技术
- Javascript语言精粹
- 高性能Javascript
- Javascript DOM设计
11.
12.
13.
14.
15.
16.
17.
18.
19.
20. var links = document.getElementById('list').getElementsByTagN
ame('LI');
21. var linkLength = links.length;
22. for(var i=0;i 23. links[i].addEventListener('click',handler,false); 24. }; 25. function handler(){ 26. alert(this.innerHTML); 27. }; 28. 29. 30.