美文网首页
事件对象的兼容

事件对象的兼容

作者: 隔壁老王z | 来源:发表于2018-11-25 22:45 被阅读0次

//兼容跨浏览器的事件对象

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;

            }

        },

        getEvent: function (event) {

            return event ? event : window.event;

        },

        getTarget: function (event) {

            return event.target || event.srcElement;

        },

        preventDefault: function (event) {

            if(event.preventDefault){

                event.preventDefault();

            }else{

                event.returnValue = false;

            }

        },

        removeHandler: function (element,type,handler) {

            if(element.removeEventListener){

                element.removeEventListener(type,handler,false)

            }else if(element.detachEvent){

                element.detachEvent("on"+type,handler);

            }else{

                element["on"+type] = null;

            }

        },

        stopPropagation: function (event) {

            if(event.stopPropagation){

                event.stopPropagation();

            }else{

                event.cancelBubble = true;

            }

        },

        getCharCode: function (event) {

            if(typeof event.charCode == "number"){

                return event.charCode;

            }else{

                return event.keyCode;

            }

        }

    };

//例如

<div id="myDiv" >hhhhhhhhhhhhh</div>

<div id="myMenu" style="visibility: hidden;background-color:red;position: absolute">

    自定义菜单

</div>

<script src="EventUtil.js"></script>//此js文件见上文

<script>

//load事件

EventUtil.addHandler(window,"load",function (event) {

    var myDiv = document.getElementById('myDiv');

    EventUtil.addHandler(myDiv,"contextmenu",function (event) {

        var myMenu = document.getElementById('myMenu');

        console.log(event)

        event = EventUtil.getEvent(event);

        EventUtil.preventDefault(event);

        myMenu.style.visibility = 'visible';

        myMenu.style.left = event.clientX + 'px';

        myMenu.style.top = event.clientY + 'px';

    });

    EventUtil.addHandler(document,"click",function (event) {

        document.getElementById("myMenu").style.visibility = "hidden"

    })

});

相关文章

  • 十七、DOM之事件对象 ------ 2020-01-05

    1、通过例子理解事件对象: 2、事件对象中常用的属性: 3、事件对象e中的键盘码的兼容性: 4、事件对象的兼容问题...

  • 你应该知道的兼容写法

    1.滚动条 2.获取样式兼容 3.事件对象兼容 4.阻止事件冒泡兼容 5.阻止默认行为兼容 6.事件监听兼容

  • 事件对象的兼容

  • 事件对象及实例

    事件对象: event兼容性: 兼容 Chrome IE系列 不兼容FireFox在FF里: ev ...

  • day11-事件

    1. 事件对象兼容(兼容IE) e = e || window.event; 2. 鼠标事件及方法; 属性名 ...

  • 常用事件

    事件 事件的三大要素 事件源 事件类型 事件函数 事件对象 : 事件函数里提供的形参 事件对象兼容性 vareve...

  • JavaScript基础 事件对象

    常规下:事件函数的第一个参数就是事件对象事件对象:它记录了触发本次事件的相关信息 点击事件 事件对象详细图 兼容问...

  • 「DOM 编程」事件

    DOM 事件事件流事件注册注册事件取消事件触发事件浏览器兼容型兼容低版本代码实现事件对象属性和方法通用属性和方法阻...

  • js事件

    1.事件 (1)事件对象的兼容性写法 event对象常用属性 三个事件的重要坐标: clientX clien...

  • js网页特效(四)事件

    1.事件 (1)事件对象的兼容性写法 event对象常用属性 三个事件的重要坐标: clientX clien...

网友评论

      本文标题:事件对象的兼容

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