SimpleModal 플러그인을 사용하여 사이트에 대화 상자를 표시하고 있습니다. 이 대화 상자에는 AJAX 요청을 수행 할 두 개의 링크가 있으며 해당 요청의 응답은 대화 상자의 현재 내용을 대체해야합니다. 대화 상자에 다른 응답을로드 할 수있게하려면 가능한 한 유연하게 유지하려고 노력하고 있습니다. 하나의 함수에서jQuery SimpleModal이 AJAX 요청 후 크기 조정
나는 대화 상자를 엽니 다
$('div.modal').modal(
{
minWidth: width,
minHeight: height,
onOpen: modal_onOpen,
onClose: modal_onClose
});
으로 onClose 콜백은 다음과 같습니다
function modal_onClose(dialog)
{
dialog.container.fadeOut('slow', function()
{
dialog.data.hide();
if(reload_dialog)
{
data = ajax_page_load(reload_url, false, false);
if(data.statusText == 'OK')
{
dialog.container.width(reload_width);
dialog.container.height(reload_height);
$.modal.setPosition();
$('div.modal div.container').html(data.responseText);
dialog.data.show();
dialog.container.fadeIn('slow', function()
{
$('a.simplemodal-close').bind('click', function()
{
$.modal.close();
});
});
}
reload_dialog = false;
}
else
{
dialog.overlay.slideUp('slow', function()
{
$.modal.close();
});
}
});
}
을 그리고 대화에 새로운 무언가를로드 할 때이 있습니다
var reload_dialog = false;
var reload_url;
var reload_width;
var reload_height;
function load_dialog(url, width, height)
{
reload_dialog = true;
reload_url = url;
reload_width = width;
reload_height = height;
$.modal.close();
}
이제 위 코드가 모두 작동합니다. 그러나 나는 복잡한 일들에 관해서 길을 가지고 있다고 우려했다. 이유는 다음과 같습니다.
modal_onClose에서 닫기 핸들러를 대화 상자 안의 앵커에 다시 바인딩해야했습니다. 거기에 바인딩하지 않으면 앵커 태그가 대화 상자 내부에 제대로 표시 되더라도 AJAX 요청 후 대화 상자를 닫을 수 없습니다. 또한 anchor 태그를 바인딩 한 후에는 작동하지만 설정 한 onClose 애니메이션은 무시합니다.
이 모든 결과로 나는 솔루션에 대한 최선의 접근 방식을 취하지 못했다고 생각합니다.
누구나 비슷한 것을 완성 했습니까? 어떤 팁? 사전에
덕분에, 나는이 그래서 내가 다른 사람을 찾고에 대한 응답을 떠나라고 생각 해결 여기 정보 :