달력

09

« 2010/09 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
jQueryinterface 라는 Plugin이 있습니다.
다양한 효과를 내는 Plugin이죠.

이 중 sortable 기능도 제공을 합니다.
근데 이 sortable은 테이블에서 목록 재정렬을 의미하는 sortable이 아니라,
Drag&Drop으로 직접 목록을 컨트롤하는..재정렬이 아닌 "재정의" 개념의 기능입니다. (예제보기)


여기서 목록이 다른 block으로 재정의 되었을때 onChange를 사용하는데, 이 때
처음에 있던 block과, 추가된 block. 즉 변화가 있는 block을 Object로 넘겨줍니다.
이걸 이용해서, 움직인 item이 어디서 어디로 갔는지 알 수 있습니다.

같은 block안에 있을떈 onChange가 실행이 안되어야 하는데 실행이 되는 bug가 있습니다.
그 경우는, SortSerialize를 사용했을 경우인데.
실제로 어디서 어디로 움직였는지 직관적으로 보거나, Ajax를 사용할땐 SortSerialize를 사용해야 편합니다.
그런데 이걸 쓰니, 작동이 안되야 할 상황에서 작동이 돠고, 제대로 된 Object를 넘겨주는게 아니라.엄한 Object를 넘겨 주 더 군요..

어디서 이 Sample Code를 본건지 모르겠지만..Sample Code에서는
function(obj){
serial01 = $.SortSerialize(obj[0]);
serial02 = $.SortSerialize(obj[1]);
...
}
로 되어 있더군요..
평상시에는 문제가 없지만 언급한대로, 작동이 안되어야 할 상황에서 오작동을 일으키더군요.
해결책은 으외로 간단합니다.
function(obj){
serial01 = $.SortSerialize(obj[0].id);
serial02 = $.SortSerialize(obj[1].id);
...
}

쩝;;
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Johan Kim 기다림