Gridster将数据序列化为1-5阶(递归循环)?

时间:2015-03-18 19:24:20

标签: javascript jquery loops recursion gridster

我正在使用Gridster插件,我需要以1-5的方式捕获新拖动的订单。我知道我们首先选择行,然后选择顺序(列)。所以,行:1,顺序:1将是id:grid_74。第1行中下一个最接近的订单号大于1,因此id:grid_78。我怎么能做到这一点?

1 - grid_74

2 - grid_78 (等...)

var gridinfo = gridster.serialize()

object

1 个答案:

答案 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>');
}