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
原创粉丝点击