首页 > 技术文章 > JS DOM资料

myc-xiaochaochao 2020-11-30 17:41 原文

addEventListener与attachEvent区别:https://www.jianshu.com/p/4af0476a08c9 (attachEvent只适用于IE,以后不会再用)
JavaScript DOM文档事件-DOM0、DOM2级事件处理程序:https://itbilu.com/javascript/js/Vy1jsXqJg.html
JavaScript和DOM的产生与发展:https://itbilu.com/javascript/js/Vyxodm_1g.html
JavaScript DOM事件处理-事件捕获和事件冒泡:https://itbilu.com/javascript/js/Ek6pnznye.html (阻止事件传播和阻止默认事件有很好的解释)

总结:

  1. DOM0和DOM2是关于DOM的规范,如果需要了解可以看下;

  2. DOM的发展就是JS不断的加功能的过程;

  3. 一般的事件处理可以参考如下:(如有特殊的情况,就查看上面的解释或自己测试吧)

    事件捕获发生在事件冒泡之前;
    事件捕获是从DOM的最顶层开始,事件发生后会从DOM的根开始向下传递,直到目标元素,从上级元素到下级元素;
    事件冒泡是从被触发元素开始一直传递到DOM树的最上层,从下级元素到上级元素;
    addEventListener(ev, fn, useCapture) useCapture为true则函数执行是在事件捕获阶段,否则在事件冒泡阶段
    当事件冒泡到处理程序后,可能需要停止继续冒泡或阻止默认事件。则使用stopPropagation()方法,常用于阻止父元素事件触发
    在事件发生过程中,有时需要阻止默认事件的发生,则使用defaultPrevented()方法阻止默认事

event.stopPropagation()方法或IE event.cancelBubble = true
阻止冒泡可以阻止父组件事件触发

defaultPrevented()方法或者return false
可以阻止浏览器默认事件,比如可以阻止a标签跳转,input的submit按钮提交

推荐阅读