2011-04-11 12 views
2

를 추가, 조작, 레베카 머피가에 대한 이야기 ​​: 당신이 요소에 무거운 조작을 수행하는 경우탈착, 나는 이번 주말에 <a href="http://jqfundamentals.com/book/index.html" rel="nofollow">jqFundamentals</a> 읽고 있었다

$ .fn.detach 방법은 매우 가치가있다. 그 경우 의 경우 $ .fn.detach 페이지의 요소가 유용하므로 코드에서 코드를 작업 한 다음 페이지가 완료되면 페이지를 으로 복원하십시오. 나는 테이블을 분리하고 다시 연결해야 궁금

var rows = $table.find('tr:not(:has(th))').get(); 
rows.sort(function(rowA,rowB) { 
... 
}); 
$.each(rows, function(index,row) { 
    $table.children('tbody').append(row); 
}); 

:

은 내가 "학습 jQuery를"에서 가져온이 같은 테이블에 정렬, 140 페이지가?

+0

몇 개의 행을 다루고 있습니까? – RobertPitt

+2

분리 후 아이디어는 게임에서 화면 버퍼링과 비슷합니다. 요소에서 변경 한 내용은 화면에 표시됩니다 (브라우저 리소스 사용). 사용자가 모든 변경 사항을보고 궁금하지 않으면 최종 결과 만 안전하게 분리 할 수 ​​있습니다. – Khez

+1

이 질문의 제목은 실제 내용과 너무 잘 어울리는 것 같지 않습니다. – Pointy

답변

2

요소를 분리하면 해당 요소가 DOM에서 제거됩니다. 따라서 테이블 요소를 분리한다면 테이블을 다시 DOM에 다시 삽입 할 때까지 전체 테이블이 사라지거나 "깜박"합니다.

그러나 DOM에서 tbody 요소 만 분리 한 다음 행 정렬이 완료되면 표에 다시 삽입 할 수 있습니다.

+0

var $ parent = $ table.parent(); $ table.detach(); $ parent.append ($ table); –

+0

동일한 실행 스레드에 머무르는 동안 깜박임이 없어야합니다. 비동기 함수를 호출하여 브라우저에 다시 반환하면 플래시가 깜박일 수 있습니다. –

관련 문제