美文网首页
DOM0级事件和DOM2级事件的区别

DOM0级事件和DOM2级事件的区别

作者: 月半女那 | 来源:发表于2019-02-26 00:01 被阅读0次

    1.DOM0事件

    1.1. DOM0级事件绑定 会存在覆盖的问题;下边的代码会把上边的代码覆盖
    1.2. 分为两种:一种是 onclick = function(){} ,还有一种是标签内写onclick事件

     <input id='input' type="text" onclick="alert('haha')" />
            document.getElementById('input').onclick = function() {
                alert('fff')
            }
    

    最后弹出fff

    2. DOM2级事件

    2.1. 只有一个:监听方法,原生有两个方法用来添加和移除事件处理程序:addEventListener()和removeEventListener()。
    持绑定多个函数; 只有三个参数都相同时,才会处理称重复绑定,这时就不再往 事件池 添加,
    第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用。

     <input id='input' type="text" onclick="alert('haha')" />
        <script>
            document.getElementById('input').onclick = function() {
                alert('fff')
            };
            document.getElementById('input').addEventListener('click', function() {
                alert('mmm')
            }, true)
            document.getElementById('input').addEventListener('click', function() {
                alert('ooooo')
            }, true)
            document.getElementById('input').addEventListener('click', function() {
                alert('pppp')
            }, false)
    
            // 兼容低版本IE的写法
            document.getElementById('input').attachEvent("onclick", function() {
                alert('pppp')
            });
        </script>
    
    // mmm ooooo fff pppp
    

    只有2级DOM包含3个事件:事件捕获阶段、处于目标阶段和事件冒泡阶段

    dom2不会覆盖,会依次执行,dom1和dom2是可以共存的

    相关文章

      网友评论

          本文标题:DOM0级事件和DOM2级事件的区别

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