我注意到Chrome处理javascript焦点事件的方式存在奇怪的问题。事实上,即使只出现一次,它也会不断触发焦点事件。我在这里做了一些研究,并找到了一些人在使用alert()时遇到相同问题的问题。当他们关闭警报窗口时,焦点返回到他们的输入框,并且处理程序会再次触发。在我的情况下,问题是不同的,因为我正在使用console.log(),有时我会得到相同的日志2或3次。我注意到通常发生在我清除控制台,然后聚焦在一个元素上。当我尝试重复它时,不再发生。
场景如下:
1.清除控制台 2.聚焦在元素上(2或3个控制台消息) 3.聚焦在其他相同的元素上或取消聚焦并再次聚焦在相同的元素上(没有问题) 4.清除控制台 5.聚焦在元素上(2或3个控制台消息-问题回来了!)
我创建了一个jsfiddle,请查看: http://jsfiddle.net/ffuWT/3/ 问题是,这个问题的原因是什么,我该如何解决?
场景如下:
1.清除控制台 2.聚焦在元素上(2或3个控制台消息) 3.聚焦在其他相同的元素上或取消聚焦并再次聚焦在相同的元素上(没有问题) 4.清除控制台 5.聚焦在元素上(2或3个控制台消息-问题回来了!)
我创建了一个jsfiddle,请查看: http://jsfiddle.net/ffuWT/3/ 问题是,这个问题的原因是什么,我该如何解决?
#4
中清除控制台会如何导致事件触发两次的问题?您是否尝试在函数中阻止事件冒泡?请尝试添加e.stopPropagation()
。 - Rory McCrossane.stopPropagation
对我来说并不能解决它。 - Ben Lee