2009-03-18 6 views
2

내가 이렇게 HTML 테이블을 가지고 : 2 & 5 체크재주문 항목이 알고리즘

up | dn 
[ ] Item 1 
[x] Item 2 
[ ] Item 3 
[ ] Item 4 
[x] Item 5 
[ ] Item 6 
[ ] Item 7 

경우와 I가 클릭 한 결과는 다음과 같습니다

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 

즉, 항목이 선택한 방향으로 그룹화 된 다음 해당 direc에서 한 행 . 누구든지 이것에 대한 좋은 알고리즘을 가지고 있습니까? 나는 어려움없이 뭔가 쓸 수 있다고 확신하지만, "저기에 있어야"하는 것과 같은 것 같습니다 ....

답변

2

js 프레임 워크가 비교적 쉽게 DOM 조각을 움직이게하기 때문에 잘라 붙여 넣기 방식으로 기울여야한다고 생각합니다.

  • 은 행을 제거 항목
  • 체크 - 대부분의 {상위} & 코스 상단이 될 수 {인덱스-1}
  • (의 하단에있는 테이블에 삽입의
  • GET 지수 항목 '행을 확인하세요 , index-1은 방향에 따라 더 복잡한 이며, 우리가 이미 극단에 있는지 여부는 알 수 없습니다.)
+0

이것은 제가 제안하려고했던 정확한 알고리즘입니다. 잘 했어. – Seb

0

이것은 다중 키 정렬 작업처럼 보입니다. jQuery UI's Sortable 인터페이스를 사용할 수 있습니다. 정렬 조건은 다음과 같습니다. a.selected < => b.selected & & a.index < => b.index.

무시 : Fisher Yates Shuffle algorithm을 사용하고 싶습니다.

+0

아마도 저는이 점을 충분히주의 깊게 읽지는 않지만 아마도 무작위로 순서를 바꾸는 것으로 보입니다 방법, 어느 내가 묻고있는 것이 아니다. – sprugman

+0

나는 본다. 나는 나의 대답을 업데이트했다. – spoulson