JQuery 时间选择器插件错误
JQuery time picker add-on error
我在我的页面上使用了 jquery-ui-timepicker-addon,但出现了这个错误:
TypeError: $.widget.extend is not a function on this.options =
$.widget.extend( {}, jquery-ui.js (line 579, col 17)
我使用以下方法创建控件:
$("input.dateInfo").datetimepicker()
在这里我没有收到任何错误。单击控件(输入字段)时出现错误。我没有显示日期时间选择器,而是收到了上面的错误。
这个错误有什么解释吗?
我使用 require.js 加载 javascript 库。我有更多的 js 文件加载。如果与其他 jquery 插件有任何冲突,我怎么知道冲突在哪里?
稍后编辑:
我使用 require.js
加载库
paths: {
jquery: 'jquery/jquery.min',
jquery_ui: 'jquery-ui-1.11.2.custom/jquery-ui',
jquery_ui_widget: 'jquery-picklist/jquery.ui.widget',
jquery_ui_timepicker: 'jquery-ui-1.11.2.custom/jquery-ui-timepicker-addon',
bootstrap: 'bootstrap-3.0.0/js/bootstrap.min',
bootbox:'bootstrap-3.0.0/plugins/bootbox.min',
moment: 'moment/moment',
//bootstrap_dateTime_picker: "bootstrap-dateTimePicker/bootstrap-datetimepicker",
sugar: 'sugar/sugar-1.3.6.min'
// some more lines here
}
和
shim: {
"jquery": ["sugar"],
"slim_scroll": ["jquery"],
"jquery_ui": ["jquery"],
"jquery_ui_widget": ["jquery","jquery_ui"],
"jquery_ui_timepicker": ["jquery", "jquery_ui"],
"bootstrap": ["jquery_ui"],
"less": ["jquery"],
"sugar_loaded": ["jquery","sugar"]
// some more lines here
}
可能与 jquery-ui-typeerror-e-widget-extend-is-not-a-function
重复
检查您的脚本加载顺序。
<script src="/scripts/jquery.js">
<script src="/scripts/jquery-ui.js">
<script src="/scripts/other-widgets.js">
编辑:
在您的编辑中,您提到您正在使用 require.js。使用 require.js 你需要提及模块的依赖关系来管理加载顺序,否则每个脚本将被异步加载。
现在,问题归结为,您的一个脚本依赖于 jquery_ui_widget,但您没有将其作为依赖项提及:
shim: {
"jquery": ["sugar"],
"slim_scroll": ["jquery"],
"jquery_ui": ["jquery"],
"jquery_ui_widget": ["jquery","jquery_ui"],
"jquery_ui_timepicker": ["jquery", "jquery_ui"],
"bootstrap": ["jquery_ui"],
"less": ["jquery"],
"sugar_loaded": ["jquery","sugar"]
// some more lines here
}
在这里,我是关于哪个脚本依赖于 jquery_ui_widget
但我的猜测是 slim_scroll
或 jquery_ui_timepicker
或 bootstrap
.
在外部 js 文件列表中添加和删除后,我发现冲突是:jquery_ui_widget:'jquery-picklist/jquery.ui.widget'。我删除了这个 js 文件(我很幸运,它是一个不再使用的组件),一切都开始正常工作了!
感谢所有试图帮助我的人。我认为这是我的特定项目特有的问题,该项目使用了大约 20 个外部 js 库,其中一个导致了冲突。
我在我的页面上使用了 jquery-ui-timepicker-addon,但出现了这个错误:
TypeError: $.widget.extend is not a function on this.options = $.widget.extend( {}, jquery-ui.js (line 579, col 17)
我使用以下方法创建控件:
$("input.dateInfo").datetimepicker()
在这里我没有收到任何错误。单击控件(输入字段)时出现错误。我没有显示日期时间选择器,而是收到了上面的错误。
这个错误有什么解释吗? 我使用 require.js 加载 javascript 库。我有更多的 js 文件加载。如果与其他 jquery 插件有任何冲突,我怎么知道冲突在哪里?
稍后编辑:
我使用 require.js
加载库paths: {
jquery: 'jquery/jquery.min',
jquery_ui: 'jquery-ui-1.11.2.custom/jquery-ui',
jquery_ui_widget: 'jquery-picklist/jquery.ui.widget',
jquery_ui_timepicker: 'jquery-ui-1.11.2.custom/jquery-ui-timepicker-addon',
bootstrap: 'bootstrap-3.0.0/js/bootstrap.min',
bootbox:'bootstrap-3.0.0/plugins/bootbox.min',
moment: 'moment/moment',
//bootstrap_dateTime_picker: "bootstrap-dateTimePicker/bootstrap-datetimepicker",
sugar: 'sugar/sugar-1.3.6.min'
// some more lines here
}
和
shim: {
"jquery": ["sugar"],
"slim_scroll": ["jquery"],
"jquery_ui": ["jquery"],
"jquery_ui_widget": ["jquery","jquery_ui"],
"jquery_ui_timepicker": ["jquery", "jquery_ui"],
"bootstrap": ["jquery_ui"],
"less": ["jquery"],
"sugar_loaded": ["jquery","sugar"]
// some more lines here
}
可能与 jquery-ui-typeerror-e-widget-extend-is-not-a-function
重复检查您的脚本加载顺序。
<script src="/scripts/jquery.js">
<script src="/scripts/jquery-ui.js">
<script src="/scripts/other-widgets.js">
编辑:
在您的编辑中,您提到您正在使用 require.js。使用 require.js 你需要提及模块的依赖关系来管理加载顺序,否则每个脚本将被异步加载。
现在,问题归结为,您的一个脚本依赖于 jquery_ui_widget,但您没有将其作为依赖项提及:
shim: {
"jquery": ["sugar"],
"slim_scroll": ["jquery"],
"jquery_ui": ["jquery"],
"jquery_ui_widget": ["jquery","jquery_ui"],
"jquery_ui_timepicker": ["jquery", "jquery_ui"],
"bootstrap": ["jquery_ui"],
"less": ["jquery"],
"sugar_loaded": ["jquery","sugar"]
// some more lines here
}
在这里,我是关于哪个脚本依赖于 jquery_ui_widget
但我的猜测是 slim_scroll
或 jquery_ui_timepicker
或 bootstrap
.
在外部 js 文件列表中添加和删除后,我发现冲突是:jquery_ui_widget:'jquery-picklist/jquery.ui.widget'。我删除了这个 js 文件(我很幸运,它是一个不再使用的组件),一切都开始正常工作了!
感谢所有试图帮助我的人。我认为这是我的特定项目特有的问题,该项目使用了大约 20 个外部 js 库,其中一个导致了冲突。