首先,这是我在这里的第一个问题,如果问得不恰当,很抱歉。我在办公室开发的一个网络应用程序有个bug。应用程序几乎完成了,但在IE <9 .当你点击一个文本框的时候,这个文本框的焦点和模糊事件就会随之发生。您可以在这张图片中看到(刚刚在文本框中点击):
https://www.dropbox.com/s/yn10xfrfxsr38bq/screen.PNG$('#divVolee [type="text"]')
没有附加焦点或焦点事件。
应用程序的URL:
http://86.126.255.70:2213/Anoxa/
如果你愿意,你可以使用"划分"按钮进入。
我没有要求任何人为我写代码或类似的东西,我只是不知道在代码和网络上搜索了几天后是什么原因导致的。
我尝试了focusin, focus, focusout, blur,直接附加或使用委托,同样的事情。只要我点击输入字段,它就会引发blur/focusout事件。
谢谢你的帮助。
我找到了。我开始把所有的东西都注释掉,直到找到问题所在:
function resizeAccordion() {
var active = $('#divAccordion').accordion('option', 'active');
$('#divAccordion').accordion('destroy').accordion({ heightStyle: "fill", active: active });
}
var resizeId;
$(window).resize(function () {
clearTimeout(resizeId);
resizeId = setTimeout(resizeAccordion, 600);
});
如果用户重新调整浏览器的大小,该代码应该重新调整页面中的手风琴的大小和排列。不知何故,在ie9中,它被无故触发,这导致了blur事件被触发。过了这么多小时。也许这是我的想法或代码是错误的,但我仍然讨厌IE。
我无法重现此错误(在IE9下使用IE8模式)。但是一个简单的解决方法可以是:(甚至很奇怪)
$('#divVolee [type="text"]').focus(function(){
//>>code for FOCUS here<<
$(this).blur(blurcallback);
});
function blurcallback()
{
//>>code for BLUR here<<
$(this).off('blur');
}