一、错误说明:
Uncaught RangeError: Maximum call stack size exceeded,翻译过来大致的意思就是“最大堆栈超过了最大值”,一般这种错误也是在递归函数当中出现。
于是乎,笔者查看了所有的代码,发现并没有递归调用的情况;由于这套代码不是本人所写,量还是有些大的,定位到点击事件调用到的函数,逻辑上也觉得没有问题;查找了两个小时愣是没有进展,最后点了一支82年的兰州,突然顿悟,莫非是冒泡事件所导致的;于是乎,在点击事件函数的最后一行,加上一句return false,很是遗憾的失败了…心中满是疑惑,最后的最后没有办法,只好把所有的无关代码注释掉运行调试,发现还是冒泡导致的,那么问题来了return false为什么没有解决呢?加上``event.stopPropagation();`呢?发现可以了!what?一脸的黑人问号…
直到第二支兰州燃完之后,才发现,原来…该js文件大部分都是用jQuery写的,而该点击函数却是按照js写的,顿时机智地记录了下来分享给会犯同样低级错误的你:
原因是:javascript的return false只会阻止默认行为,而是用jQuery的话则既阻止默认行为又防止对象冒泡。