【问题标题】:g.size() is not a function - Jquery Errorg.size() 不是函数 - Jquery 错误
【发布时间】:2016-07-27 15:14:34
【问题描述】:

我一直在尝试使用 bootstrap datetimepicker 并在我的脚本中包含所有组件,例如 Moment JS、bootstrap-date-time js 和 bootstrap js,但我得到 g.size() 不是函数错误。我正在尝试运行以下功能

$(function(){
    $('#datetimepicker').datetimepicker();
  });

【问题讨论】:

  • 如果你使用jq3.x,$.fn.size()方法已经被移除。如果是这样,请降级到任何较旧的 jq 版本(2.x?)。但也许这与您的问题无关,只是很难猜测您的问题没有提供足够的信息这一事实
  • 我编辑了问题,请您再检查一下。
  • 其中的某些脚本可能已在高级优化模式下通过 Google Closure Compiler 传递,而未指定所有外部变量。
  • @Arnauld 那么我该如何解决我的问题。我需要一个日期时间选择器字段。
  • 如果您确实在使用 Google Closure Compiler,请尝试暂时禁用它,看看它是否能解决问题。如果没有,我们没有足够的信息来回答您的问题。

标签: javascript jquery momentjs bootstrap-datetimepicker


【解决方案1】:

我遇到了和你一样的错误,我在任何地方都找不到解决方案。事实上,唯一提到 g.size() is not a function 错误的是这个问题,当时只有一个反对票。

我的解决方案是找到一个实际工作的不同日期时间选择器

我找到了这个:https://github.com/xdan/datetimepicker,很容易上手:

  1. download the zip from github

  2. 包括文件:

  3. 这个 HTML

  4. 还有这个 JS

    $.datetimepicker.setLocale('en');
    $('#datetimepicker').datetimepicker();

我完成了这项工作,并且只花费了我试图让引导程序 datetimepicker 停止给我g.size() 错误所浪费的时间的一小部分。

当然还有许多其他的日期时间选择器可用:

有关更多选项,请参阅此帖子:whats-a-good-javascript-time-picker

【讨论】:

  • 是的,我找不到解决方案,所以我改用 Angulat Bootstrap 日期时间选择器而不是 Jquery。
【解决方案2】:

.size() 在 jQuery 版本 3 中被删除,请改用 .length

在您的示例中,将 g.size() 替换为 g.length

【讨论】:

【解决方案3】:

g.size 错误已为开发人员所知,并且存在于较新版本的 jquery 中。

如果您希望使用该日期时间选择器,请返回 jquery 2.1.4 或更早版本。

这里列出了错误:

https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1714

【讨论】:

  • 我的 rails 应用程序中的这个错误将我带到了这里。我使用//= require jquery3,切换到`//= require jquery2' 解决了这个问题。
【解决方案4】:

请使用最新的bootstrap-datetimepicker 来解决这个问题。我用过以下版本,错误消失了。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

使用jQuery v3.3.1

【讨论】:

  • 我的问题是使用 Bootstrap 3 我错误地认为您需要 bootstrap-datetimepicker3.xx 版本,这是不正确的移动到 4.xx i> 版本和相应的 CSS 修复了我的问题
  • 这解决了我的问题!!我使用的是 4.17.37 版本。谢谢!!!
【解决方案5】:

检查您的 jQuery 版本。我正在使用最新的(3.1.1)我使用的一些插件抛出了这个错误。

根据文档:从 jQuery 1.8 开始不推荐使用 .size() 方法。请改用 .length 属性。

(在 3.0 中被移除)

所以一个简单的回滚到 3.0 之前的版本就可以了。

编辑:哎呀,正如 A. Wolff 在 cmets 中所说的那样。

编辑 2:另一件事...如果您想让 jquery 版本保持最新,您可以将 jquery-migrate 插件包含到您的项目中 - https://github.com/jquery/jquery-migrate

【讨论】:

    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 2014-08-02
    • 2014-03-04
    • 1970-01-01
    • 2011-01-07
    • 2018-02-06
    • 1970-01-01
    相关资源
    最近更新 更多