转:IE8下propertychange事件引发的栈溢出

1 $("#idname").bind("input propertychange", function() {
2        //函数执行......
3 })
在IE8下会发生栈溢出问题,Stack overflow,从而前端页面控制台进入死循环
解决方法如下:增加一个全局的同步信号 

1 $("#idname").bind("input propertychange", function() {
2     if($.syncProcessSign) return ;
3         $.syncProcessSign = true;
4        //函数执行...
5     $.syncProcessSign = false;
6 })

 

注:这个锁在同一个页面只能使用在一个地方,如果使用在多处地方,有可能会出现其中一个事件还未执行完成而导致$.syncProcessSign = true的局面,进而导致其他事件无法触发的情况发生(公司的项目中有出现过一次此事件,当时是客户那边会出现这种事,而公司的这边没人能够复现,后面通过查找并猜测,找到是这个问题,最后只能选择去掉此锁,使用体验感不太好的keyup和change来替代)

 

转载自:https://blog.csdn.net/qq_39267517/article/details/79103612

posted @ 2020-09-08 11:50  傅丹辰cds  阅读(279)  评论(0编辑  收藏  举报