我正在使用Gridster插件,我需要以1-5的方式捕获新拖动的订单。我知道我们首先选择行,然后选择顺序(列)。所以,行:1,顺序:1将是id:grid_74。第1行中下一个最接近的订单号大于1,因此id:grid_78。我怎么能做到这一点?
1 - grid_74
2 - grid_78 (等...)
var gridinfo = gridster.serialize()
答案 0 :(得分:3)
我想你可能只需要一种。
// 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>');
}