本文共 529 字,大约阅读时间需要 1 分钟。
刚开始的时候,不知道什么是冒泡事件?感觉程序中的应用不会很多,也感觉特别不好理解,没接触到代码是这样理解的:冒泡事件就是触发一个事件,它会相应的一级一级向外冒泡,触发相应的冒泡事件。
一次,查找bug时才有所了解。bug的现象是:某个浏览器中,当“回车”时,页面会报出500的错误,而其他浏览器则不会出现这样的问题。刚开始以为是浏览器兼容的问题,一直向这个方向找错,但是最后师父给看了一下,原来不是浏览器兼容,是冒泡事件。
因为错误是抛到页面上的,说明页面跳转了,不是ajax的异步请求,敲回车导致页面跳转了,说明某个form表单被提交了,而又不能在其他版本重现,说明DOM嵌套有问题,于是浏览器的容错机制把DOM修正了,出问题的浏览器则刚好把回车时间包到某个form里了。
解决的办法:(阻止冒泡事件)
1 | event.stopPropagation(); |
当验证form表单中的内容时,若出错,则阻止默认动作。
阻止事件的默认动作:
1 | event.preventDefault(); //暂时在项目中未用到 |