我已经构建了rails + angular app。在这里我使用了jquery-ui datepicker。我没有找到解决方案为什么我在控制台中出现此错误:
TypeError:datepicker_instActive未定义
if(!$。datepicker._isDisabledDatepicker(datepicker_instActive.inline?) datepicke ...
在控制台中。
我的css
版本为jQuery UI Datepicker 1.11.2
和js
也是一样的。 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 popup,在那种形式中我使用了datepicker。
答案 0 :(得分:2)
jQuery UI 1.11.4
中的问题相同。我们刚刚创建了一个错误票证http://bugs.jqueryui.com/ticket/14578,并希望jQuery团队很快就能修复它。
解决问题,只需
jquery-ui.js
并重命名,例如jquery-ui-1.11.4-datepicker-fix.js
将空检查添加到函数datepicker_handleMouseover()
的第一行,如下所示:
function datepicker_handleMouseover() {
if (!datepicker_instActive || !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {
...
}
不需要对代码进行进一步更改。只需从模板中删除脚本标记,即可在修复错误后轻松删除补丁。
请注意,此解决方法会完全覆盖原始的datepicker插件。
答案 1 :(得分:1)
在销毁一个日期选择器之后,再次在另一个日期选择器上调用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来演示解决方法。
答案 2 :(得分:0)
当我两次包含jquery-ui时遇到此错误。删除任一实例都解决了它。