jquery-ui-dialog
플러그인을 사용하고 있습니다
일부 상황에서 대화 상자가 닫힐 때 페이지를 새로 고치는 방법을 찾고 있습니다.
대화 상자에서 닫기 이벤트를 캡처하는 방법이 있습니까?
닫기 버튼을 클릭하면 코드를 실행할 수 있지만 오른쪽 상단의 x 또는 x로 닫는 사용자를 다루지 않습니다.
jquery-ui-dialog
플러그인을 사용하고 있습니다
일부 상황에서 대화 상자가 닫힐 때 페이지를 새로 고치는 방법을 찾고 있습니다.
대화 상자에서 닫기 이벤트를 캡처하는 방법이 있습니까?
닫기 버튼을 클릭하면 코드를 실행할 수 있지만 오른쪽 상단의 x 또는 x로 닫는 사용자를 다루지 않습니다.
답변:
찾았습니다!
다음 코드를 사용하여 close 이벤트를 잡을 수 있습니다.
$('div#popup_content').on('dialogclose', function(event) {
alert('closed');
});
분명히 나는 내가해야 할 일로 경고를 바꿀 수 있습니다.
편집 : Jquery 1.7부터 bind ()가 on ()되었습니다.
$('div#popup_content')
옳습니까? 이 대화 상자가 다음과 같이 jQuery.fn.dialog.open({})
$('body').on('dialogclose', '.ui-dialog', function(){...});
대화 상자를 만들면서도 할 수 있다고 생각합니다 (내가 한 프로젝트에서 복사).
dialog = $('#dialog').dialog({
modal: true,
autoOpen: false,
width: 700,
height: 500,
minWidth: 700,
minHeight: 500,
position: ["center", 200],
close: CloseFunction,
overlay: {
opacity: 0.5,
background: "black"
}
});
노트 close: CloseFunction
var CloseFunction = function() { //Do your custom closing stuff here };
overlay
두 번 있습니다. 그럴 필요가 없습니까?
U는 이것을 시도 할 수도 있습니다
$("#dialog").dialog({
autoOpen: false,
resizable: true,
height: 400,
width: 150,
position: 'center',
title: 'Term Sheet',
beforeClose: function(event, ui) {
console.log('Event Fire');
},
modal: true,
buttons: {
"Submit": function () {
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
내가 말하는 창 유형을 이해하고 있다면 $ (window) .unload () (대화 상자 창)가 필요한 후크를 제공하지 않습니까?
(그리고 내가 잘못 이해하고 팝업 브라우저 창 대신 CSS를 통해 만든 대화 상자에 대해 이야기하고 있다면 해당 창을 닫는 모든 방법은 클릭 처리기를 등록 할 수있는 요소입니다.)
편집 : 아, CSS를 통해 작성된 jquery-ui 대화 상자에 대해 이야기하고 있습니다. ui-dialog-titlebar-close 클래스에 요소에 대한 클릭 핸들러를 등록하여 창을 닫는 X 를 후크 할 수 있습니다 .
아마도 더 유용 할 것입니다. 빠르게 알아내는 방법을 알려주는 것입니다. 대화 상자를 표시하는 동안 FireBug를 열고 창을 닫을 수있는 요소를 검사 하십시오. 그것들이 어떻게 정의되어 있는지 즉시 확인할 수 있으며 클릭 핸들러를 등록하는 데 필요한 것을 제공합니다.
따라서 귀하의 질문에 직접 대답하기 위해 대답은 실제로 "아니오"라고 생각합니다. 가까운 이벤트가 없지만 "예"입니다. 대화 상자를 상당히 쉽게 닫고 가져 오는 모든 방법을 사용할 수 있습니다. 당신이 원하는 것.