【问题标题】:Updating to latest JQuery UI and datepicker is causing the datepicker to always be seen更新到最新的 JQuery UI 和 datepicker 导致 datepicker 总是可见
【发布时间】:2011-04-20 19:56:54
【问题描述】:

我们刚刚更新到 JQuery 1.5.2.min 和 JQuery-ui-1.8.11.min 并且也在使用最新的 datepicker.js 文件(我说文件是因为我们使用了一些本地化版本的日期选择器)。

在我们更新之前,我们使用以下代码来初始化和使用日期选择器并设置语言环境

$.datepicker.setDefaults($.datepicker.regional['']);

$('.datepicker').keypress(function()
{
    $(this).datepicker('hide');
});

$('.datepicker').datepicker();
$('.datepicker').datepicker('option', $.datepicker.regional[widgetCulture]);
$('.datepicker').datepicker('option', 'showAnim', '');
$('.datepicker').datepicker('setDate', new Date());

自更新以来,当您滚动到使用日期选择器的屏幕底部时,您可以在所有控件下方看到它。它只是漂浮在那里!单击与日期选择器关联的字段后,它会出现在应有的位置,然后在刷新页面之前不会再次出现在屏幕底部。当我注释掉除 .datepicker() 行之外的所有内容时,我看到的只是一个灰色条,而不是整个日历,我想(不是真的)好一点,但仍需要修复。上述代码的任何其他行都会显示整个日历。这真是令人沮丧!

有人可以解释一下吗?

【问题讨论】:

  • 你的 jquery ui css 更新到了吗?
  • 我在 1.8.10 和 1.8.13 中也看到了这种行为(我已经确认在这两种情况下我都使用匹配的 JS/CSS 文件。Bob PS 我认为 jQuery UI 存在一些问题现在似乎各种事情都搞砸了。UI Lightness 主题目前与自定义下载和主题库中的平滑度相同(如果您双击正确的 UI Lightness 预览在左侧,右侧出现平滑度)。还有许多其他主题在下面显示空白的“框架图标”。有人破坏了 jQuery UI 吗?:-D

标签: jquery jquery-ui jquery-ui-datepicker


【解决方案1】:

我遇到同样的错误有一段时间了,今晚才开始研究它。我不确定为什么会出现此错误,但以下是我为消除屏幕上的视觉伪影所做的工作。创建日期选择器后,立即执行以下操作:

$('#ui-datepicker-div').css('display','none');

警告:当我查看 Safari 生成的 dom 并逐步执行创建日期选择器的代码时,上面的代码似乎对 dom 没有任何作用,但它确实隐藏了屏幕上的视觉效果。

【讨论】:

  • 扩展你的答案$('#ui-datepicker-div').hide();也是一个有效的答案。
【解决方案2】:

我更喜欢用 CSS 来解决这个问题:

#ui-datepicker-div {
   display: none;
}

【讨论】:

    【解决方案3】:

    这也发生在我身上,我在同一个 html 中有 jquery 和 Keith-Wood datepicker (http://keith-wood.name/datepick.html) 库。我尝试使用上面提到的#ui-datepicker-div {display: none;},但它解决了问题,但它也使 Keith-Wood 日期选择器消失了。

    我正在使用 jquery 1.8.2、jquery-ui.js (1.10.2),甚至主题也是 1.10.2。所以我将 jquery-ui 和主题改回 1.8.2,与 jquery.js 版本相同。它解决了问题,灰线不再出现。我认为更好的解决方案是对所有 jquery 库使用相同的版本

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-22
    • 2011-05-10
    • 2014-04-28
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多