2015-01-05 11 views
0

크기가 가변적 인 jQuery 대화 상자를 사용하고 있습니다. 나는 동적으로 내용을 생성 메소드를 채 웁니다. 대화 상자가 렌더링 될 때 대화 상자의 왼쪽 위 모서리는 화면 중앙에 위치하지만 대화 상자가 상당히 크므로 아래쪽이 페이지에서 잘 어울립니다. 대화 상자의 크기에 관계없이 완벽하게 중심에 배치하고 싶습니다. 여기에 jQuery가 있습니다 :위치 jQuery 대화 상자가 동적 높이 내용과 수직으로 가운데에 놓임

var dialogOptions = { 
    title: "", 
    modal: true, 
    width: 'auto', 
    autoOpen: false, 
    create: function() { 
     $(this).load("/Management/RenderPartialCreateSubject"); 
    } 
}; 

$("#dialog-message").dialog(dialogOptions); 
$("#dialog-message").dialog("open"); 

제가 알 수있는 유일한 점은 대화 상자를 배치하기 전에 내용이로드되고 있지 않다는 것입니다. 콘텐츠를 미리로드 할 수있는 방법은 없나요?

나는 또한 직선 사업부에 부분 뷰를로드 다음과 같이 대화 상자 열기 시도했습니다

:

$.get("/Management/RenderPartialCreateSubject", null, function (data) { 
    $("#dialog-message").html(data); 
}); 
//open add new subject dialog 
var dialogOptions = { 
    title: "", 
    modal: true, 
    width: 'auto', 
    autoOpen: false 
}; 

$("#dialog-message").dialog(dialogOptions); 
$("#dialog-message").dialog("open"); 

잘못 처음 렌더링하지만, 내용이 후에는 (두 번째 시간을 작동 로드 됨).

+0

두 번째 예제 다음에'$ ("# dialog-message"). hide(). delay (500) .show();'를 추가하거나'.dialog ("close")를 추가해보십시오. ("open")'$ ("# dialog-message"). dialog ("open");의 끝에. 나는 대화를 피하려고 노력하고 있으므로 약속을하지 않습니다. –

답변

0

더 좋은 답변이 있는지 기다리는 것이 좋겠지 만 $ .get을 $ .ajax로 바꾸고 async: false으로 설정하여 대화 상자를 표시하기 전에 내용을로드 할 수있었습니다.