此问题与Internet Explorer 10
有关,这是我正在测试的,并不会影响我当前版本的Firefox or Chrome
。
在Internet Explorer中重现的步骤
datepicker
IE
窗口旁边的另一个应用程序窗口,然后返回IE
,然后点击datepicker
面板中的一些空白空格。 datepicker
消失然后重新出现,我认为这必须与最后一次拥有焦点的控件相关,当你点击后重新获得焦点。我注意到了什么:
IE
,则不会发生虽然我可以接受这是一个小问题而且看起来并不像是一个错误,但在我们的应用程序中,datepicker
作为弹出窗口的一部分显示出来的问题变得更加严重。点击它后消失。
使用父容器的日期选择器:
孤立日期选择器重新出现:
我尝试过的事情:
我已经看过与datepicker
的可见度相关的帖子,这些帖子表明了以下内容,我已经测试过:
$("#my-datepicker-div").datepicker('destroy');
$("#my-datepicker-div").datepicker('disable');
即使我很高兴忽略这种边缘情况,但它仍然被提出作为我需要修复的错误。我还不确定还有什么可以尝试。
答案 0 :(得分:4)
我能够在IE 10中修复(让它刷新然后关闭,因此有一点闪烁)通过调用:
$("#datepicker").datepicker("hide");
要重现您为IE 10描述的行为,只需在disablepopup()
函数中注释掉该行,您就可以重现孤立的日期选择器窗口。如果您将实际示例发布为小提琴,我们可以使用它。
在这里抓住弹出式div示例:http://istockphp.com/jquery/creating-popup-div-with-jquery/
<强>更新强>
另一种处理此问题的方法,看起来更好一点是让用户成为$(window).blur()
和$(window).focus()
函数。在我看来,这看起来没问题,请注意窗口关闭,如果你在白框内点击则重新打开,如果你在白框外面点击,那么所有人都会一起关闭:
$(window).blur(function(e) {
$("#datepicker").datepicker("hide");
});
更新了小提琴。与.focus()
一起玩也可以根据自己的喜好确定最佳组合,你应该做得很好。也可能只想检测IE 10,并且只在该浏览器中运行此代码。