Gridster 将数据序列化为 1-5 阶(递归循环)?
Gridster serialize data to 1-5 order (recursive loop)?
我使用的是Gridster插件,需要以1-5的方式抓取新拖拽的顺序。我知道我们先选择行,然后是顺序(列)。因此,row:1、order:1 将是 id:grid_74。第 1 行中大于 1 的下一个最接近的订单号是 5,因此 id:grid_78。我怎样才能做到这一点?
1 - grid_74
2 - grid_78
(等...)
var gridinfo = gridster.serialize()
我想你可能只需要排序。
// Just setting up object array to match example:
var gridinfo = [
{ id: "grid_75", order: 5, row: 4 },
{ id: "grid_74", order: 1, row: 1 },
{ id: "grid_91", order: 9, row: 1 },
{ id: "grid_85", order: 5, row: 7 },
{ id: "grid_78", order: 5, row: 1 }
]
// This sort is what does all the magic.. it first sorts by row, then order.
// I lifted this bit of javascript ninjutsu from:
// http://www.sitepoint.com/sophisticated-sorting-in-javascript/
gridinfo.sort(function(a, b)
{
if(a.row === b.row)
{
return a.order < b.order ? -1 : a.order > b.order ? 1 : 0;
}
return a.row - b.row;
});
// Display sorted array:
for(var k=0; k<gridinfo.length; k++)
{
document.write('id: '+gridinfo[k].id+'<br>');
document.write('row: '+gridinfo[k].row+'<br>');
document.write('order: '+gridinfo[k].order+'<br>');
document.write('-------<br>');
}
我使用的是Gridster插件,需要以1-5的方式抓取新拖拽的顺序。我知道我们先选择行,然后是顺序(列)。因此,row:1、order:1 将是 id:grid_74。第 1 行中大于 1 的下一个最接近的订单号是 5,因此 id:grid_78。我怎样才能做到这一点?
1 - grid_74
2 - grid_78 (等...)
var gridinfo = gridster.serialize()
我想你可能只需要排序。
// Just setting up object array to match example:
var gridinfo = [
{ id: "grid_75", order: 5, row: 4 },
{ id: "grid_74", order: 1, row: 1 },
{ id: "grid_91", order: 9, row: 1 },
{ id: "grid_85", order: 5, row: 7 },
{ id: "grid_78", order: 5, row: 1 }
]
// This sort is what does all the magic.. it first sorts by row, then order.
// I lifted this bit of javascript ninjutsu from:
// http://www.sitepoint.com/sophisticated-sorting-in-javascript/
gridinfo.sort(function(a, b)
{
if(a.row === b.row)
{
return a.order < b.order ? -1 : a.order > b.order ? 1 : 0;
}
return a.row - b.row;
});
// Display sorted array:
for(var k=0; k<gridinfo.length; k++)
{
document.write('id: '+gridinfo[k].id+'<br>');
document.write('row: '+gridinfo[k].row+'<br>');
document.write('order: '+gridinfo[k].order+'<br>');
document.write('-------<br>');
}