事件对象

事件监听和删除事件处理程序分别是

addEventListenerremoveEventListener都能有三个参数分别是事件源,事件处理程序的函数和一个布尔值(事件和事件监听的区别建别的word文档)

 

阻止默认事件:preventDefault()

只有当cancelable属性设置为true的时候,才能使用preventDefault()

StopPropagation()方法用来立即停止事件在dom中传播  例子

Varbtn=document.getElementById(“mybtn”);

Btn.οnclick=function(event){

     Var ev=window.event||ev;

     Alert(“clicked”);

     Event.stopPropagation();

}

Document.body.οnclick=function(){

     Alert(“body,clicked”);

}

如果不调用stopPropagation(),单击的时候会出现2个警告框,但是加了之后单击事件传递不到document.body,就不会触发在这个元素上的onclick

 

EventUtil的四个新方法

1.   getEvent()方法,返回event的对象引用

2.   getTarget()返回时间的目标,该方法内部,会检测对象的target属性,如果存在则返回该值的属性,否则返回srcElement属性的值

3.   如果preventDefault()方法不存在,则将returnValue设置为false

4.   stopPropagation()首先尝试使用dom方式阻止事件流,否则就使用cancelBubble属性

 

焦点事件:

焦点事件会在页面元素获得或则会失去焦点的时候触发,和document.hasFoucs()方法以及document.activeElement属性配合使用

 

重点的两个属性 blur(失去焦点时触发)focus(获得焦点时触发)

 

还没怎么用过的鼠标事件

Dblclick(鼠标双击事件)

Mouseenter(鼠标光标首次移动到元素之内的时候触发改事件,事件不冒泡)

Mouseleave(位于元素上方的鼠标光标移动到元素之外时触发,不冒泡)

除开mouseenter和mouseleave这两个之外所有鼠标事件都会冒泡,也可以被取消

 

页面坐标

注意点:pageX pageY clientX clientY在页面没有滚动的情况下这四个值对应相等

 

移动端关于事件的支持

不支持dblclick事件

轻击可单击元素触发mousemove事件

Mousemove事件也能触发mouseovermouseout事件

2手指放在屏幕上且页面随手指移动时会触发mousewheelscroll事件

 

键盘鱼文本事件

Keydown 按任意键触发的事件

Keypress按下字符键的时候触发事件

Keyup释放键盘上的键的时候触发事件

 

Keycode属性的值和键盘上分别对应的ASCII码值相对应

 

 

 

 

删除节点:removeChild()和replaceChild()

插入节点:appendChild(),replaceChlid(),insertBefore()

 

Html5新事件

contextmenu事件  通过单击鼠标右键可以调出上下文菜单,改事件是冒泡的

 

 

hashchange事件用在ajax中的参数列表来保存状态或导航信息,当hashchange事件处理程序添加给window对象,然后url参数列表只要变化就会调用他,此时event对象应该额外包含2属性:oldURLnewURL,这两个参数分别保存着参数列表变化前后的完整URL

 

为确定是否支持hashchange可以用location.hash来确定

 

内存和性能,js中添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,每个函数都是对象,都会占用内存内存中对象越多,性能就越差,其次必须现制定所有事件处理程序而导致的dom访问次数,会延迟整个页面的交互就绪事件

 

内存中留有那些过时不用的“空事件处理程序”(dangling event handler),2种情况造成上述问题,1.文档中移出带有事件处理程序的元素的时候(如果事件处理程序的元素被innerHTML删除了,那么添加到元素中的事件处理程序极有可能无法被当成垃圾回收)2.卸载页面的时候

 

 

打开页面自动获取焦点 autofocus或者oText.focus();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值