我有一个html表:
up | dn
[ ] Item 1
[x] Item 2
[ ] Item 3
[ ] Item 4
[x] Item 5
[ ] Item 6
[ ] Item 7
如果2&检查5,我点击,结果是:
up | dn
[x] Item 2
[x] Item 5
[ ] Item 1
[ ] Item 3
[ ] Item 4
[ ] Item 6
[ ] Item 7
如果我点击dn,结果是:
up | dn
[ ] Item 1
[ ] Item 3
[ ] Item 4
[ ] Item 6
[x] Item 2
[x] Item 5
[ ] Item 7
换句话说,项目按所选方向分组,然后在该方向上移动一行。任何人都有一个很好的算法吗?我确信我可以毫不费力地写出一些东西,但这似乎应该是“在那里”......
答案 0 :(得分:2)
我认为我倾向于采用剪切和粘贴的方法,因为js框架使得移动的DOM相对容易。
答案 1 :(得分:0)
这看起来像是一个多键的排序任务。您可以使用jQuery UI's Sortable接口之类的东西。您的排序条件类似于:a.selected< => b.selected&& a.index< => b.index。
无视:您想使用Fisher Yates Shuffle algorithm。