我正在尝试使用 gridster.js 和 jquery-cookie 来存储布局并让以下实现正常工作。它显示 json,我想让它默认/显示我的 html 内容。
我确定解决方案很简单/优雅,但我是 json 和 gridster 的新手。我相信我只需要编辑“if ($.cookie("grid-data") == null) { var json =...”
我知道我可以更改值和大小,但我想知道如何放入我的 html 内容。
希望有人能引导我朝着正确的方向前进。这就是我到目前为止所拥有的。
<section class="demo">
<div id="main" class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="2" data-sizey="1">My Content</li>
<li data-row="3" data-col="1" data-sizex="1" data-sizey="1">Some text</li>
<li data-row="3" data-col="2" data-sizex="2" data-sizey="1">Maybe an image and text</li>
<li data-row="1" data-col="2" data-sizex="2" data-sizey="2">Maybe an image</li>
<li data-row="1" data-col="4" data-sizex="1" data-sizey="1">More Content</li>
<li data-row="2" data-col="4" data-sizex="2" data-sizey="1"></li>
<li data-row="3" data-col="4" data-sizex="1" data-sizey="1"></li>
<li data-row="1" data-col="5" data-sizex="1" data-sizey="1"></li>
<li data-row="3" data-col="5" data-sizex="1" data-sizey="1"></li>
<li data-row="1" data-col="6" data-sizex="1" data-sizey="1"></li>
<li data-row="2" data-col="6" data-sizex="1" data-sizey="2"></li>
</ul>
</div>
</section>
<script>
var gridster;
$(function ()
{
$('<div id="main" class="gridster"></div>').appendTo('section');
if ($.cookie("grid-data") == null) {
var json = [{
"id": "foo",
"html": "<h3>My Content<\/h3>", //testing this failed
"col": 1,
"row": 1,
"size_y": 2,
"size_x": 3
}, {
"id": "bar",
"col": 4,
"row": 1,
"size_y": 2,
"size_x": 2
},
{
"id": "tar",
"col": 6,
"row": 1,
"size_y": 2,
"size_x": 2
},
{
"id": "boo",
"col": 1,
"row": 3,
"size_y": 2,
"size_x": 3
}, {
"id": "aar",
"col": 4,
"row": 3,
"size_y": 2,
"size_x": 2
},
{
"id": "dar",
"col": 6,
"row": 3,
"size_y": 2,
"size_x": 2
}
];
}
else
{
var json = JSON.parse($.cookie("grid-data"));
}
var grid = $("#main").gridster({
draggable: {
stop: function(event, ui){
$.cookie("grid-data", JSON.stringify(grid.serialize()));
}
},
widget_margins: [10, 10],
widget_base_dimensions: [140, 140],
max_size_y: 3,
serialize_params: function ($w, wgd) {
return {
id: wgd.el[0].id,
html: wgd.html,
col: wgd.col,
row: wgd.row,
size_y: wgd.size_y,
size_x: wgd.size_x
}
}
}).data('gridster');
for (i = 0; i < json.length; i++) {
grid.add_widget(
'<div id="' + json[i]['id'] + '"></div>',
json[i]['size_x'],
json[i]['size_y'],
json[i]['html'],
json[i]['col'],
json[i]['row']);
}
});
</script>