8.6 js进阶学习二
来源:互联网 发布:黑莓z10淘宝 编辑:程序博客网 时间:2024/06/05 17:53
今天学习的内容是事件,这一章的内容比较多,只看了前半部分,主要是以下内容:
1、了解了事件流,事件冒泡和事件捕获
2、了解了事件处理程序,学习了跨浏览器的事件处理程序代码
3、了解了事件对象,学习了跨浏览器获取事件对象的程序代码
4、了解了一些事件类型,
UI事件:当用户与页面上的元素交互时触发。
焦点事件:当用户失去焦点时触发。
鼠标与滚轮事件:当使用鼠标或滚轮时触发。
5、学到了相关元素及跨浏览器取得相关元素的程序代码,还有跨浏览器检测鼠标按钮的程序代码。
6、发出unload 事件的具体情况:
点击某个离开页面的链接在地址栏中键入了新的 URL
使用前进或后退按钮
关闭浏览器
重新加载页面
附:以上提到的程序代码合集
<span style="font-family:Microsoft YaHei;font-size:18px;">//跨浏览器的事件处理程序var EventUtil = {//添加事件addHandler: function (element,type,handler) { if (element.addEventListener) {element.addEventListener(type,handler,false);} else if (element.attachEvent) {element.attachEvent("on"+type,handler);} else {element["on"+type] = handler;}},//取得event对象getEvent: function (event) {return event ? event : window.event;},//返回事件的目标getTarget: function (event) {return event.target || event.srcElement;},//取消事件的默认行为preventDefault: function (event) {if (event.preventDefault) {event.preventDefault();} else{event.returnValue = false;}},//取得相关元素getRelatedTarget: function (event) {if (event.relatedTarget) {return event.relatedTarget;} else if (event.toElement) {return event.toElement();} else if (event.fromElement) {return event.fromElement;} else{return null;}},//检测按钮信息getButton: function (event) {if (document.implementation.hasFeature("MouseEvents","2.0")) {return event.button;} else{switch(event.button){case 0:case 1:case 3:case 5:case 7:return 0; //主鼠标按钮case 2:case 6:return 2; //中间的鼠标按钮case 4:return 1; //次鼠标按钮}}},//移除事件removeHandler: function (element,type,handler) {if (element.removeEventListener) {element.removeEventListener(type,handler,false);} else if (element.detachEvent) {element.detachEvent("on"+type,handler);} else {element["on"+type] = null;}},stopPropagation: function (event) {if (event.stopPropagation) {event.stopPropagation();} else{event.cancelBubble = true;}}};</span>
今天学习的事件大部分还比较容易懂,有些还使用过,今天看过有了不一样的认识。不过障碍还是有点,有些术语“DOM0级事件”、“DOM2级事件"什么的,让人看得一头雾水,我把它们统统看成某种标准,也不知道对不对。看书的过程中,看到有一些实用的代码,比如跨浏览器的事件处理程序,我觉得写的很好,就把它们记录了下了,方便以后直接使用。学习编程应该比较依靠积累,因为不可能一个工程数成千上万行代码都要一个一个敲,有一个使用的代码库会很便捷,虽然我还是新手,但是现在也应该多积累,为未来打基础。
因为时间的原因,这一章只看到鼠标这儿,还有一半没看,明天继续努力。
0 0
- 8.6 js进阶学习二
- backbone学习进阶二
- node.js进阶学习
- node.js进阶学习
- Js 进阶学习
- js进阶知识 (二)
- Js进阶知识(二)
- SQL 进阶学习之二
- scala学习二:scala进阶
- Ajax进阶学习(二)
- 8.5 js进阶学习一
- 8.7 js进阶学习三
- Python进阶(二十一)-Python学习进阶资料
- hibernate3学习笔记(二十三)|进阶特性
- hibernate3学习笔记(二十三)|进阶特性
- solr学习笔记(二):进阶
- Java WebService学习笔记 - Axis进阶(二)
- Python的学习笔记(二)(进阶)
- spring定时器配置
- “众测市场还很小,应合作大于竞争”:Sobug 要做测试众包的淘宝
- unity C#脚本规则
- 刚的非官方大哥地方
- 计算几何题目推荐
- 8.6 js进阶学习二
- ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces
- C++中重载运算符
- java中常见的框架
- 发个梵蒂冈梵蒂冈
- 地方和规范规划法规和
- 如何封装一个自定义的UISlider
- Dezender下载及使用说明
- 详细讲解Oracle I/O子系统的配置和设计