gpt4 book ai didi

jquery - 在 IE10 中导航回页面时,孤立的 jQuery Datepicker 重新出现

转载 作者:行者123 更新时间:2023-12-03 22:51:24 24 4
gpt4 key购买 nike

此问题与 Internet Explorer 10 相关,这是我正在测试的版本,不会影响我当前版本的 Firefox 或 Chrome

在 Internet Explorer 中重现的步骤

  1. 导航至:http://jqueryui.com/datepicker/
  2. 点击日期字段可显示日期选择器
  3. 打开时,导航到 IE 窗口旁边的另一个应用程序窗口,然后返回 IE 并单击 datepicker< 中的一些空白区域 面板。
  4. 您应该看到 datepicker 消失然后重新出现,我相信这一定与最后获得焦点的控件在您单击返回时重新获得焦点有关。

我注意到的:

  • 如果您最小化和最大化 IE,则不会发生这种情况
  • 如果您执行相同的步骤而不点击另一个应用程序并直接点击空白区域,则不会发生这种情况
  • 如果您并排运行窗口/应用程序或在 2 个显示器上运行,它会始终如一地工作

虽然我可以接受这是一个小问题,而且看起来并不像一个错误,但在我们的应用程序中,它变成了一个更大的问题,其中 datepicker 显示为弹出窗口的一部分单击离开后它就会消失。

带有父容器的日期选择器:

date picker with container

孤立的日期选择器再次出现:

orphaned date picker

我尝试过的:

我看过与 datepicker 可见性相关的帖子,其中建议了以下内容,我已经测试过:

$("#my-datepicker-div").datepicker('destroy');
$("#my-datepicker-div").datepicker('disable');

尽管我很乐意忽略这个边缘情况,但它还是作为一个我需要修复的错误提出的。我只是不确定还可以尝试什么。

最佳答案

我能够通过调用以下命令在 IE 10 中修复(刷新然后关闭,因此有一点闪烁):

$("#datepicker").datepicker("hide");

在 div 关闭时调用的函数中(在这个快速示例中,您在返回窗口时单击 div 外部)。 fiddle 示例:http://jsfiddle.net/anyuG/

要重现您为 IE 10 描述的行为,只需注释掉 disablepopup() 中的该行即可。函数,您可以重现孤立的日期选择器窗口。如果您将实际示例发布为 fiddle ,我们可以使用它。

在这里获取弹出 div 示例:http://istockphp.com/jquery/creating-popup-div-with-jquery/

更新

处理这个问题的另一种方法,看起来更好一点,是让用户使用 $(window).blur()$(window).focus()功能。在我看来,这看起来不错,请注意关闭窗口离开,如果您在白色框内单击,则重新打开,如果您在白色框外单击,则重新打开,但全部关闭:

$(window).blur(function(e) {
$("#datepicker").datepicker("hide");
});

更新了 fiddle 。玩.focus()以及根据您的喜好确定最佳组合,您应该会很好。也可能只想检测 IE 10,并且仅在该浏览器中运行此代码。

fiddle :http://jsfiddle.net/78252/1/

关于jquery - 在 IE10 中导航回页面时,孤立的 jQuery Datepicker 重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com