博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中的事件:
阅读量:7281 次
发布时间:2019-06-30

本文共 2528 字,大约阅读时间需要 8 分钟。

事件驱动:

1.事件:js捕获用户的操作或页面中的一些行为

2.事件源:触发事件的对象

 

鼠标事件:

onclick

ondblclick

onmousedown

onmouseup

onmousemove

onmouseover

onmouseout

 

页面事件,撤销加载:

onbeforeunload

 

添加,删除事件具有兼容性:

在IE中:

添加:

obj.attachEvent("on事件","处理程序")

删除:

obj.detachEvent("on事件","方法")

 

谷歌等支持W3C标准的浏览器中:

添加:

obj.addEventListener("click",fn1,false);

obj.removeEventListener("click",fn1,false);

 

自定义对象:

var person={

  name:"zhang"

  age:21

  }

调用:console.log(person.name)

示例:

var Event = {            add:function(obj, type, foo) {                if(obj.attachEvent) {                    obj.attachEvent("on" + type, foo);                } else if(obj.addEventListener) {                    obj.addEventListener(type, foo, false);                } else {                    obj["on" + type] = foo;                }            },            remove:function(obj, type, foo) {                if(obj.detachEvent) {                    obj.detachEvent("on" + type, foo);                } else if(obj.removeEventListener) {                    obj.removeEventListener(type, foo, false);                } else {                    obj["on" + type] = null;                }            }       };

 

事件对象:

bu1.οnclick=function(e){

  var ev=e||window.event

  }

 

鼠标相对于浏览器的位置:

ev.ClientX(X轴)

ev.ClientY(Y轴)

 

鼠标相对于屏幕的位置:

ev.ScreenX

ev.ScreenY

 

鼠标相对于事件源的位置:

ev.offsetX

ev.offsetY

 

键盘事件:

document.οnkeydοwn=function(e){

  }

示例:

div2.οnmοusedοwn=function(e){            var ev=e||window.event;//            事件发生时:获取到事件源的距离            var ol=ev.offsetY;            var al=ev.offsetX;                this.οnmοusemοve=function(e){                    var ev=e||window.event;                    this.style.top=ev.clientY-ol+"px";                    this.style.left=ev.clientX-al+"px";                };                this.οnmοuseup=function(){                    this.οnmοusemοve=null;                }        };

 

事件流:

冒泡型事件:从点击处向外响应事件

捕获型事件:从外向内响应事件

 

阻止事件流:

IE:ev.cancelBubble=true;

其他浏览器:ev.stopPropagation

示例:

div3.οnclick=function(e){        var ev=e||window.event;        console.log("我是儿子");//        阻止冒泡事件        ev.stopPropagation();
body.addEventListener("click",function(e) {//        var ev = e || window.event;//        console.log("我是body");//        //        阻止捕获事件//        ev.stopPropagation();//    },true);

 

 

事件委托:

var obj=ev.target||ev.srcElement(返回点击的对象)

var ul=document.getElementsByTagName("ul");    ul[0].οnclick=function(e){        var ev=e||window.event;        var obj=ev.target||ev.srcElement;        alert(obj.innerHTML);    }

 

转载于:https://www.cnblogs.com/hongxuejiao/p/4805777.html

你可能感兴趣的文章
用了7年做到项目经理,女朋友却离开了我
查看>>
[WCF 4.0新特性] 路由服务[原理篇]
查看>>
如何在 Swift 3 中用 SpriteKit 框架编写游戏 (Part 1)
查看>>
零售业无线技术应用--IP导航
查看>>
java解析XML之DOM解析和SAX解析(包含CDATA的问题)
查看>>
很多开发人员的毛病
查看>>
云应用程序很慢?原因在应用,而不是云
查看>>
Linux下Git安装及配置
查看>>
量子纠缠:从量子物质态到深度学习
查看>>
多家银行手机转账现高危漏洞 ,用户资金或被非法窃取
查看>>
火币网徐宝龙谈大数据网络攻防与区块链
查看>>
企业并购中值得留意的10个陷阱
查看>>
布线须知:皮线光缆的特点
查看>>
软件定义网络对我们有多重要?
查看>>
黑客组织APT6入侵美国政府网络长达数年,奥巴马造吗?
查看>>
《中国人工智能学会通讯》——2.5 智能汽车人机交互与人机协同技术 的研究进展...
查看>>
从比特币说起, “区块链”到底是什么
查看>>
《数字视频和高清:算法和接口》一1.9标清和高清
查看>>
黑客攻击频发 网络安全公司借机争相IPO
查看>>
《VMware Virtual SAN权威指南》一1.3 超融合/服务器SAN解决方案
查看>>