dom事件

1、DOMO级事件

  • 书写方式οnclick=fn onclick onmousemove
  • 一个事件仅能定义一个事件处理函数
  • 不同的浏览器实现上不同,事件处理函数在冒泡阶段触发

2、DOM2级事件

  • 书写语法:document.addEventListner(‘click’,fn,false)
  • 一个事件可以定义多个事件处理函数
  • 事件处理函数可以定义在哪个阶段触发,第三个参数:false或者不定义是在冒泡阶段触发,true是在捕获阶段触发。
  • dom2级事件会自动过虑重复定义事件处理函数的情况(重复定义:事件处理函数是同一个,且第三个参数相同)
  • 第三个参数可以定义成对象,doucument.addEventListner(‘scroll’,fn,(passive:false)).比如在scroll,touchmove等事件触发频次非常高的场景下,要通过ev.preventDefault()来判断是否阻止默认行为(页面滚动 手指移动元素),也就是说每次都要先执行fn函数,然后才得出是否阻止默认行为的结论。这样性能损耗很大,页面不流程,为了解决这个问题,把第三个参数改成对象,其中可以直接声明是否阻止默认行为,这样就不用每次都要执行fn才能确定是否要阻止默认行为
  • ev.preventDefault()阻止默认行为,ev.stopPropagation()阻止冒泡;ev.stopImmediatePropagation()阻止冒泡:两个阻止冒泡函数的区别:前者是不阻止自身上绑定的在冒泡阶段触发的函数,后者连自身上绑定的在冒泡阶段触发的函数也阻止

你可能感兴趣的:(dom事件)