2010-05-28 3 views
2

양식을 표시하는 대화 상자가 있습니다. 대화 상자를 저장하거나 닫을 때 jquery 대화 상자의 destroy 메소드를 호출합니다.Jquery UI 대화 상자에서 이벤트 삭제도 html을 제거합니까?

그러나 html div를 제거하면 명확하지 않습니다. 설명에서 나는 그렇게

완전히 대화 기능 을 제거 생각하지 않을 것입니다. 그러면 요소가 초기화 전 상태로 돌아갑니다.

그러나 방화범이 끌려 볼 때 HTML 컨테이너를 볼 수 없으므로 제거되었는지 또는 무엇인지 확실하지 않습니다. 대화 상자의 div를 즉석에서 만들고 jquery를 사용하여 페이지에 추가하기 때문에 이것이 맞는지 확실하지 않습니다.

답변

4

HTML을 파괴하지 않습니다. you can see a demo here. 그러나 그것은 기본적으로 컨테이너를 (거기에 display: none 떠나는) 숨기기, 그래서 당신은다시 시각적으로 볼 필요가 있다면 그것은 당신이있어.

<button>Create Dialog</button> 
<div id="dialog">Test Content</div> 

와 jQuery를 :

$("button").click(function() { 
    $("#dialog").dialog({ 
    buttons: { 'Destroy Me': function() { $(this).dialog('destroy').show(); } } 
    }); 
}); 

이 당신이 다시 대화 인과에서 캔 요소를 전환 할 수 있습니다 실행 다음은 간단한 데모 테스트 코드입니다.

그러나 대화 상자를 만들 때 대화 상자가 손상되지 않도록하려면 미리 가능한 모든 복사본을 파괴하십시오. 예를 들면 다음과 같습니다.

// destroy any previous dialog of same that may exist 
    $(".ui-dialog").filter(function(i) { return $(this).children("#dialog").exist(); }).remove(); 
    $("#dialog").dialog({ 
     /* dialog options */ 
    }); 
+1

그래서 jquery를 제거해야한다고 생각하십니까? – chobo2

+9

@ chobo2 - 실제로 요소가 사라지길 원한다면'.dialog ('destroy'). remove()'가 작동합니다 :) –

관련 문제