Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

冒泡不要戳!

  DOM 的事件具有冒泡机制,在实现一些特效时经常会利用冒泡来做。stopPropagation 可以很轻易地实现一些效果。但我觉得冒泡毕竟是一种全局属性,仅为了实现某个特效而破坏了整套冒泡的完整性是得不偿失的。我们应该尽可能地避免对冒泡的阻止。
  事件冒泡是一个既好玩又能装 B 的东西,面试时也经常会问这些。我以前的代码中也会为了装 B 各种使用冒泡并阻止冒泡。现在想想,这么做比使用全局变量还可怕。冒泡机制可以用于一些事件监控,一旦控件在实现时利用了冒泡并阻止了冒泡就可能造成监控不准确。比如「事件代理」就是通过冒泡机制实现的,阻止冒泡就会对其造成影响。
  其实我以前就踩过这个坑,可还是没把它当回事,觉得真会用到事件冒泡的情况很少,有两个冒泡需求的东西嵌套使用更是不可思议。但当时只考虑了控件类的东西,所以就这样不了了之了。现在在做一些监控类的,需要用到完整的全局冒泡,于是就开始悲伤了。
  希望大家看到此篇文章后引以为戒,尽可能的不要阻止冒泡。也许不阻止冒泡的实现会比较复杂,但对一套机制的完整性而言,局部的复杂并不是什么问题。
网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^