你知道页面上常见的事件类型吗

作者: baiying | 来源:发表于2017-08-18 15:12 被阅读34次

我们常用的事件类型有UI事件,焦点事件,鼠标事件,滚轮事件,键盘事件和文本事件,用了跨浏览器添加事件处理程序的方法来小试一下哦,大概思路是先定义一个对象,里边包含了两个方法,添加事件处理程序和移除事件处理程序,并且做到了跨浏览器使用,我在该对象的基础上添加了一些常用的事件的处理程序,可以直接拿过去用哦,当然还有一些不太常见的(例如复合事件,变动事件等等)此处没做过多尝试

//html
<body>
<button  id="btn">button</button>
<input type="text" id="in">
</body>

//JavaScript
window.onload = function () {
    var btn = document.getElementById('btn');
    var input  =document.getElementById('in');

    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;
            }
        },
        removeHandler: function (element, type, handler) {
            if (element.addEventListener) {
                element.removeEventListener(type, handler, false)
            }
            else if (element.attachEvent) {
                element.detachEvent('on' + type, handler)
            }
            else {
                element['on' + type] = null;
            }
        }
    };

    function handler(event) {
        console.log(event.type);
    }

    //常见UI事件
    EventUtil.addHandler(window, 'load', handler);//页面加载后触发,也可以是当所有框架加载完,图像加载完触发
    EventUtil.addHandler(window, 'unload', handler);//页面卸载后触发,也可以是当所有框架卸载完,图像卸载完触发,只要用户从一个页面切换到另一个页面就会发生unload事件
    EventUtil.addHandler(window, 'resize', handler);//浏览器窗口被调整到一个新的高度时触发

    //常见焦点事件
    EventUtil.addHandler(btn, 'blur', handler);//元素失去焦点时触发,不支持冒泡
    EventUtil.addHandler(btn, 'focus', handler);//元素获得焦点时触发,不支持冒泡
    EventUtil.addHandler(btn, 'focusin', handler);//元素获得焦点时触发,支持冒泡
    EventUtil.addHandler(btn, 'focusout', handler);//元素失去焦点时触发,支持冒泡

    //鼠标与滚轮事件
    EventUtil.addHandler(btn, 'click', handler);//单击主鼠标按钮或者按下回车时触发
    EventUtil.addHandler(btn, 'dbclick', handler);//双击主鼠标按钮时触发
    EventUtil.addHandler(btn, 'mousedown', handler);//按下任意鼠标按钮时触发
    EventUtil.addHandler(btn, 'mouseenter', handler);//鼠标光标首次从元素外部移动到元素范围之内时触发
    EventUtil.addHandler(btn, 'mouseleave', handler);//位于元素上方的鼠标光标移动到元素范围之外时触发
    EventUtil.addHandler(btn, 'mousemove', handler);//鼠标光标在元素内部移动时重复触发
    EventUtil.addHandler(btn, 'mouseout', handler);//位于元素上方的鼠标光标移动到另一个元素时触发
    EventUtil.addHandler(btn, 'mouseover', handler);//鼠标指针位于一个元素外部,首次将其移入另一个元素边界之内时触发
    EventUtil.addHandler(btn, 'mouseup', handler);//释放鼠标按钮时触发
    EventUtil.addHandler(btn, 'mousewheel', handler);//可指定给页面中的任何元素或者document对象,当用户通过鼠标滚轮与页面交互,垂直方向上滚动页面时就会触发

    //键盘与文本事件
    EventUtil.addHandler(btn, 'keydown', handler);//按下键盘上的任意键触发,按住不放会重复触发
    EventUtil.addHandler(btn, 'keypress', handler);//按下键盘上的字符键时触发,按住不放会重复触发
    EventUtil.addHandler(btn, 'keyup', handler);//释放键盘上的键时触发
    EventUtil.addHandler(input, 'textInput', handler);//DOM3引入的,在可编辑区域中输入字符时触发,用于代替keypress,不同是keypress能被任何可以获得焦点的元素触发,但只有可编辑区域才能触发textInput

};

相关文章

  • 你知道页面上常见的事件类型吗

    我们常用的事件类型有UI事件,焦点事件,鼠标事件,滚轮事件,键盘事件和文本事件,用了跨浏览器添加事件处理程序的方法...

  • 如何确定数据埋点的准确性

    一、常见的数据上报类型 从事件上报的触发逻辑层面上看,数据上报类型可分为:前端触发上报、前端获取后端结果...

  • 常见的事件类型

    1.点击事件 2.input的事件 3.共同的事件

  • 带你了解什么是安然纳米被

    你了解被子的重要性吗?你知道被子有多少种类型吗?你知道吗,被子种类很多,现在市面上应用比较广泛的是安然纳米被子,下...

  • JS数据类型判断

    JS中判断数据类型的方式(已知8种) 2021了,这些判断方式你都知道吗 typeof 常见的判断类型的方式,但是...

  • js常见事件类型

    1.常见事件类型onload - 页面加载完成

  • BOM

    一、BOM基础 二、定时事件 三、事件 四、常见事件类型 五、练习- 自动跳转

  • 【javascript】事件类型

    事件类型 Web 浏览器中可能发生的事件有很多类型UI事件:当用户与界面上的元素交互时触发。焦点事件:当元素获得或...

  • view的事件分发

    事件MotionEvent常见类型:ACTION_DOWN、ACTION_MOVE、ACTION_UP 事件分发相...

  • 花束流行趋势

    花束 是花店最常见的花艺 对于花束 花粉们关注过它有哪些类型吗? 你知道它们可以分为哪几类吗? 想了解的亲们 就跟...

网友评论

    本文标题:你知道页面上常见的事件类型吗

    本文链接:https://www.haomeiwen.com/subject/qhjarxtx.html