【问题标题】:TypeError: datepicker_instActive is undefined in Jquery-ui DatepickerTypeError: datepicker_instActive 在 Jquery-ui Datepicker 中未定义
【发布时间】:2015-03-30 09:24:20
【问题描述】:

我已经构建了 rails + angular 应用程序。在这我使用了 jquery-ui datepicker。我没有找到为什么我在控制台中收到此错误的解决方案:

TypeError: datepicker_instActive 未定义

if(!$.datepicker._isDisabledDatepicker(datepicker_instActive.inline? 日期选择...

在控制台中。

我的css 版本是jQuery UI Datepicker 1.11.2js 也是一样的。 jQuery UI Datepicker 1.11.2

当我将光标移到 datepicker 小部件上时,相同的错误计数会增加。

我认为问题在于 Jquery 的这个功能:

function datepicker_handleMouseover() {
    if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {
        $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
        $(this).addClass("ui-state-hover");
        if (this.className.indexOf("ui-datepicker-prev") !== -1) {
            $(this).addClass("ui-datepicker-prev-hover");
        }
        if (this.className.indexOf("ui-datepicker-next") !== -1) {
            $(this).addClass("ui-datepicker-next-hover");
        }
    }
}

你有没有遇到过同样的问题?或者任何想法我该如何解决它。我使用了 bootstrap-modal 弹出窗口,并以这种形式使用了 datepicker。

【问题讨论】:

    标签: javascript jquery angularjs jquery-ui datepicker


    【解决方案1】:

    jQuery UI 1.11.4 中的同样问题。我们刚刚创建了一个 bug 票 http://bugs.jqueryui.com/ticket/14578,希望 jQuery 团队尽快修复这个问题。

    要解决此问题,只需

    • 通过自定义下载 (https://jqueryui.com/download/) 从 jQuery UI 站点下载 datepicker 组件,
    • 从 ZIP 存档中提取 jquery-ui.js 并重命名,例如jquery-ui-1.11.4-datepicker-fix.js
    • 在模板中的完整 jQuery UI 脚本之后立即嵌入脚本,并且
    • 在函数datepicker_handleMouseover()的第一行添加一个空检查,如下所示:

      function datepicker_handleMouseover() {
          if (!datepicker_instActive || !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {
          ...
      }
      

    不需要对您的代码进行进一步更改。修复错误后,只需从模板中删除脚本标记即可轻松删除补丁。

    请注意,此解决方法会完全覆盖原来的 datepicker 插件

    【讨论】:

      【解决方案2】:

      销毁日期选择器后,在另一个日期选择器上调用refresh 再次设置datepicker_instActive,这可能是比修改外部插件代码更可接受的解决方法:

      // Delete a datepicker
      $('#date1').datepicker('destroy');
      
      // WORKAROUND: Refresh another datepicker until the following is fixed
      // http://bugs.jqueryui.com/ticket/14578
      $('.hasDatepicker').last().datepicker('refresh');
      

      Here's an updated Fiddle 从工单中演示解决方法。

      【讨论】:

        【解决方案3】:

        我在包含 jquery-ui 两次时遇到了这个错误。删除任一实例即可解决问题。

        【讨论】:

          猜你喜欢
          • 2017-05-23
          • 1970-01-01
          • 2018-01-26
          • 1970-01-01
          • 2014-06-21
          • 2023-03-04
          • 2020-12-18
          • 1970-01-01
          • 2017-08-03
          相关资源
          最近更新 更多