gridstack 基础知识,如何使演示工作

Posted

技术标签:

【中文标题】gridstack 基础知识,如何使演示工作【英文标题】:gridstack basics, how to make the demo work 【发布时间】:2016-02-28 14:15:03 【问题描述】:

真的是菜鸟问题,但我不明白我在这里做错了什么?

<head>
    <link rel="stylesheet" type="text/css" href="gridstack.js/dist/gridstack.css">
</head>

<body>
    <div class="grid-stack">
        <div class="grid-stack-item" 
            data-gs-x="0" data-gs-y="0" 
            data-gs- data-gs->
                <div class="grid-stack-item-content"> azazfaz</div>
        </div>
        <div class="grid-stack-item" 
            data-gs-x="4" data-gs-y="0" 
            data-gs- data-gs->
                <div class="grid-stack-item-content"></div>
        </div>
    </div>
</body>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"> </script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"> </script>
<script type="text/javascript" src="gridstack.js/dist/gridstack.js"> </script>

<script type="text/javascript">
    $(function () 
        var options = 
            cell_height: 80,
            vertical_margin: 10
        ;
        $('.grid-stack').gridstack(options);
    );
</script>

我收到此错误:

gridstack.js:391 Uncaught TypeError: undefined is not a function

在gridstack中指向这条线:

  var is_nested = this.container.closest('.' + opts.item_class).size() > 0;

编辑: 我发现了问题,如果我替换这行

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"> </script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>

然后它起作用了,知道为什么吗?

【问题讨论】:

【参考方案1】:

作为一种解决方法,当size() 函数不存在时,您可以执行以下操作以使 gridstack 工作:

$.fn.size = function()
  return this.length;
;

【讨论】:

【参考方案2】:

jQuery 3.0 移除了 jQuery.fn.size 方法。使用这个库时,坚持使用 1.11.x 可能更安全。

https://github.com/jquery/jquery/issues/1749

(顺便说一句,我实际上得到 this.container.closest(...).size 不是报告错误的函数)。

【讨论】:

刚刚解决了这个问题 :)【参考方案3】:

如果您按照https://api.jquery.com/size/ 的建议对 gridstack.js 进行编辑,则可以使用 jQuery 3.0 及更高版本

将 gridstack.js(版本 0.2.5)中的第 511 行更改为:

var isNested = this.container.closest('.' + opts.itemClass).size() > 0;

var isNested = this.container.closest('.' + opts.itemClass).length > 0;

gridstack 工作正常。

【讨论】:

以上是关于gridstack 基础知识,如何使演示工作的主要内容,如果未能解决你的问题,请参考以下文章

Gridstack - 添加带有内容的新小部件

如何使 Gridstack.js 小部件垂直响应?

如何减少 GridStack 网格元素的最小高度和重量?

音视频知多少声音与视频的基础知识

gridstack.js - 保持纵横比

允许 Gridstack 仅可拖动到项目的特定区域