2012-10-25 2 views
3

jQuery 및 jQuery UI를 사용하여 큰 "단일 페이지 응용 프로그램"을 개발했습니다. 응용 프로그램의 다양한 섹션을로드 할 때 대화 상자 나 날짜 선택 도구와 같은 jQuery UI 위젯을 만듭니다. 그들은 특정 부분을 다시로드 할 때 주위에 매달려 있고 어떤 문제를 일으키는 경향이 있습니다. 로드 된 모든 jQuery UI 위젯을 삭제하고 DOM에서 제거하는 함수를 호출 할 수있는 기능이 필요합니다. 모든 솔루션을 모두 잡을 수 있습니까? 감사! 이론적으로jQuery UI 위젯을 모두 삭제하려면 어떻게해야합니까?

답변

7

, 그것은 찾아 페이지에 특정 유형의 모든 위젯을 파괴하는 쉬운 충분 : 그래서

$(":ui-draggable").draggable("destroy"); 

, 당신이 알고있는 위젯 형식의 배열 주위에 루프를 만들 상상할 수없는 당신은 목록에있는 모든 종류의 위젯을 사용하고 삭제합니다. 여기 JQuery와 UI 위젯의 내용을 지우고하기

2

사용 remove() 또는 detach()

remove() 완전히 DOM에서 일치하는 요소를 제거 차이를합니다.

detach()은 remove()와 비슷하지만 저장된 요소와 관련된 저장된 데이터 및 이벤트를 유지합니다.

+0

위젯에서 remove() 또는 detach()를 호출하고 있지만 내부적으로 위젯에서 사용 된 모든 메모리를 해제 할 예정입니까? 그렇지 않으면 메모리 누수가 발생합니까? - DOM에서 무언가를 제거하지만 자원을 해제하지는 않습니다. –