1.根据DOM树可知,出现在html中的标签在被浏览器解析时都会被挂在dom树上


2.dom树上每个标签都是独立的,都有自己的属性和方法,方法也和dom的事件是挂钩的,通常会在标签上注册一个事件,当事件满足条件被触发以后,就会执行我们预定义好的方法


3.事件就是:让html在某些特定条件下执行了一段js脚本,特定事件如:点击,鼠标经过,键盘输入等,这些条件以属性的形式呈现在html代码中,而触发执行的js脚本则称为方法:如


<div onclick = "fn()"></div>
<script>
    function fn(){
        alert("我被点击了");
    }
</script>


onclick为某些条件的事件句柄,fn为事件满足后要执行的函数,事件分为以下几种写法:原始写法(和html混合在一起),dom0级,dom2级


原始写法:和html混合在一起,缺点代码高冗余,无法添加多个事件处理函数。


dom0级:将html代码和js代码分离,且支持匿名函数,可以看到完美的改进了1的冗余缺憾,所有的事件相关操作都在js中完成


//html代码
<div id="a"></div>

//js代码
var div1 = document.getElementById("a");
a.onclick=function(){
   alert("我被单击了");
}


dom2级:ie使用attachEventListener其他非ie使用addEventListener,支持绑定多个事件。

//html代码
 <div id="one">one</div>

//js代码
  one.addEventListener('click',function fn1(){
    console.log('1')
    })
  one.addEventListener('click',function fn2(){
    console.log('2')
    })
//输出 1  2(因为one拥有一个队列,采用先进先出,先输出1后输出2)


使用removeEventListener可以出队
    one.removeEventListener('click',fn2)
    //这时只输出1