0

首先,这是我在这里的第一个问题,如果没有正确提问,请见谅。我在办公室开发的 Web 应用程序中有一个错误。该应用程序即将完成,但在 IE < 9 中,一旦您单击它,带有 jQ​​uery 附加的焦点和模糊事件的文本框就会引发模糊事件。您可以在这张图片中看到这一点(只需在文本框中单击):

https://www.dropbox.com/s/yn10xfrfxsr38bq/screen.PNG

$('#divVolee [type="text"]') 

没有附加 focusin 或 focus 事件。

应用程序的 URL:

http://86.126.255.70:2213/Anoxa/

如果您愿意,可以使用“Demarrer”按钮进入。

我不要求任何人为我编写代码或类似的东西,我只是不知道在代码和网络上搜索了几天后可能导致这种情况的原因。

我尝试过focusin、focus、focusout、blur、直接附加或使用委托,同样的事情。一旦我单击输入字段,它就会引发模糊/聚焦事件。

谢谢您的帮助。

4

2 回答 2

1

我找到了。我开始评论一切,直到找到罪魁祸首:

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);
 });

如果用户重新调整浏览器的大小,此代码应该重新调整页面中的手风琴大小并重新排列。不知何故,在 IE<9 中它被无故触发,这导致了模糊事件被触发。经过这么多小时。也许是错误的想法或代码,但我仍然讨厌 IE。

于 2013-01-22T11:55:18.527 回答
0

我无法重现此错误(在 IE9 下使用 IE8 模式)。但一个简单的解决方法可能是:(甚至很奇怪)

$('#divVolee [type="text"]').focus(function(){
    //>>code for FOCUS here<<
    $(this).blur(blurcallback);
});

function blurcallback()
{
  //>>code for BLUR here<<
  $(this).off('blur');
}
于 2013-01-21T15:41:00.250 回答