2012-07-19 7 views
0

jQuery UI 대화 상자 기능을 사용하고 있으며 닫을 때 대화 상자에 있던 요소 중 하나를 숨기고 싶습니다.닫을 때 대화 상자의 요소를 숨기는 jQuery 대화 상자

Dialog 함수의 close 이벤트에서이 작업을 시도하고 있지만 작동하지 않습니다. 나는 그 요소가 닫을 때 더 이상 존재하지 않기 때문에 추측하고있다.

다음은 코드입니다.

// Dialog settings for our edit dialog's 
$("#myDialog").dialog({ 
    autoOpen: false, 
    close: function(event, ui){ 
     $("#myDiv").hide(); 
    } 
}); 


<div id="myDialog"> 
    <div id="myDiv">This div should hide when the user closes the dialog, but it stays open when I re-open the dialog.</div> 
</div> 
+0

사업부는 대화와 숨기기되고 있지? – davidbuzatto

+0

대화 상자의 div가 기본적으로 표시되며 대화 상자를 닫을 때 숨길 수 있습니다. –

+0

또한 CSS를 제공 할 수 있습니까? – haynar

답변

0

myDialog 및 myDiv을 포함한 내부의 모든 항목이 대화 상자가 닫힐 때 자동으로 숨겨져 있어야합니다. 그렇게하기 위해 추가 코드를 작성할 필요가 없습니다. 작동하지 않는다면, 그 밖의 다른 것은 잘못되었습니다. 귀하의 질문에 코드 샘플을 기반으로 내 생각 : 기본적으로

  1. 숨기기 MyDialog에, 예를 들어, 명시 적으로 <div id="MyDialog" style="display:none;">...
  2. 적절한 예를 들어, 대화 상자를 열고 $("#myDialog").dialog("open");
-1

당신은 아마 참조해야 대화 상자와 관련된 요소. 당신의 대화 내부

$("#myDialog").dialog().find('#myDiv').hide() 

-edit-

close: function(event, ui){ 
    $(this).find('#myDiv').hide() 
    } 
+0

그는 이미 ID 선택기를 사용하고 고유하기 때문에'find' 메서드를 사용할 필요가 없다고 생각합니다. 기존 코드는 코드 – haynar

+0

에 다른 논리 오류가 없으면 잘 작동합니다. 올바르지 않습니다. 그가 html을 대화 상자 안에 넣을 때, jquery는 html을 복제합니다. 이는 그 id를 가진 요소의 사본이 두 개 있다는 것을 의미합니다. 그런 다음 jquery는 id로 선택하면 찾은 첫 번째 항목 만 반환합니다. – ChrisThompson

+0

jQuery는 컨텐트를 복제하지 않습니다. 이벤트, 스타일 등으로 인해 이전에 언급 한 것처럼 대화를 만드는 것이 "똑똑하지 않은"방법 일 것입니다. – haynar

관련 문제