001-DOM事件

决定还是继续写博客,记录工作学习中遇到的问题,每天晚上对学习和遇到的问题进行总结。

1.DOM事件

1.HTML事件处理程序
2.DOM的0级事件(把一个函数函数赋值给一个事件处理程序属性)element.onclick(function(){})
3.DOM的二级事件(element.addEventListener(type,fn,false),(false添加到冒泡阶段)、
element.attachEvent(type,fn,false))

2.封装一个对象兼容各种浏览器

    var EventUtil = {
        addEvent: function (element, type, fn) {
            if (element.addEventListener) {
                element.addEventListener(type, fn, false);
            } else if (element.attachEvent) {
                element.attachEvent('on' + type, fn);  //兼容IE
            } else { 
                element['on' + type] = fn;      //DOM的0级
            }
        },

        removeEvent: function (element, type, fn) {
            if (element.removeEventListener) {
                element.removeEventListener(type, fn, false);
            } else if (element.detachEvent) {
                element.detachEvent('on' + type, fn);
            } else { 
                element['on' + type] = null;
            }
        }
    }

3.小例子

  • HTML结构

    <div id="box">
        <input type="button" value="按钮0" id="btn0">
    </div>
  • JS代码
    我们现在给这个按钮添加事件

//随便写一个函数,假设触发这个按钮的点击事件后,会调用这个函数

    function showMsg(event) {
        alert(event.target.nodeName);  //会把绑定这个事件的标签的名字显示出来
        event.stopPropagation();      //阻止冒泡
        event.preventDefault();       //阻止默认行为
    }
    
    //获取这个按钮
    var btn0 = document.getElementById('btn0');
    //调用上面写的封装的函数绑定事件
    EventUtil.addEvent(btn0, 'click', showMsg);
   

4.总结

主要是回顾了一下DOM事件,后面又做了两个小练习
1.封装事件处理
2.event事件对象

    原文作者:yangdepp
    原文地址: https://segmentfault.com/a/1190000010367194
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞