javascript基础-事件2

DOM0,DOM2,DOM3事件类型

javascript基础-事件2

图解:

范畴 响应顺序(标:标准浏览器、IE9+) 注意点
MouseEvent 标: mousedown-mouseup-click-mousedown-mouseup-click-dblclick
IE8-:
mousedown-mouseup-click-mouseup-click-dblclick
clientX/Y: 可视区坐标,不包含滚动区域
pageX/Y:
页面区坐标,包含滚动区域
IE8-没有pageX/Y,需clientX/Y+document.scrollTop||
document.documentElement.scrollTop

修改键:shiftKey ctrlKey
altKey metaKey

mousedown/up:
event.button(0左键 1中 2右键)

移动设备(IOS/Android):
   
轻击单击元素触发mousemove,内容变化,不产生其他事件,否则:mousedown-mouseup-mouseclick
    mousemove:会触发mouseover
mouseout
    两个手指放在屏幕上,页面随手指滚动:mousewheel,scroll

无障碍阅读,屏幕阅读器:
   
mousedown,mouseover,dblclick不支持。

FocusEvent focusout-focusin-blur-focus  
键盘与文本 keydown-keypress-keyup 区分按键:
先读键编码event.keyCode(ASCii),取到按键字符String.fromCharCode()。
标准浏览器会优先将编码存入charCode

HTML5事件类型

javascript基础-事件2

移动设备专有事件

javascript基础-事件2

图解:   1. orientationchange: iOS、WebView支持,Android不一定支持。Android用resize事件替代。注意resize事件,改变1px大小会触发一次。

2. 触摸事件:三touch集合属性touches/targetTouches/changeTouches,每个touch包含标准的鼠标事件属性。触摸时的事件产生顺序:touchstart-mouseover-mousemove-mousedown-mouseup-click-touchend。

3. 手势事件: 在包含标准的鼠标事件属性的基础上,还额外包含ratation(旋转角度,顺时针为正,逆时针为负)、scale(手指间的距离)

事件处理

IE8-在innerHTML/onunload 需要移除绑定的事件。

通常针对冒泡事件,在document绑定一次。然后通过target的id或自定义属性或class,来分发事件处理。这样页面上绑定事件的数量,降低内存的损耗。

    $(document).on('click',function(e){
var target = e.target,
dataset = target.dataset,
eventName = dataset['eventName']; //ID
switch(id){
case 'hd-tab-myto': hbStatusHandler(true);return;
} //eventName
switch(eventName){
case 'to-app': $H.toRoot();return; //跳到易购首页
...
}
}

  

上一篇:Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档


下一篇:《31天成为IT服务达人》最新文件夹