• javascript基础-事件2


    DOM0,DOM2,DOM3事件类型

    图解:  

    范畴 响应顺序(标:标准浏览器、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事件类型

    移动设备专有事件

    图解:   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源码情操陶冶-AbstractApplicationContext#obtainFreshBeanFactory
    Spring源码情操陶冶-AbstractApplicationContext#prepareRefresh
    Spring源码情操陶冶-AbstractApplicationContext
    Spring源码情操陶冶-ContextLoader
    Spring源码情操陶冶-ContextLoaderListener
    Spring mybatis源码篇章-MapperScannerConfigurer
    Spring mybatis源码篇章-动态SQL节点源码深入
    Spring mybatis源码篇章-动态SQL基础语法以及原理
    Spring mybatis源码篇章-Mybatis的XML文件加载
    Spring mybatis源码篇章-Mybatis主文件加载
  • 原文地址:https://www.cnblogs.com/mominger/p/3920120.html
Copyright © 2020-2023  润新知