Estou usando o jquery-ui-dialog
plugin
Estou procurando uma maneira de atualizar a página quando, em algumas circunstâncias, quando a caixa de diálogo estiver fechada.
Existe uma maneira de capturar um evento próximo a partir da caixa de diálogo?
Eu sei que posso executar o código quando o botão Fechar é clicado, mas isso não cobre o fechamento do usuário com escape ou o x no canto superior direito.
$('div#popup_content')
certo? O que devo estar substituindo isso com, tendo em conta o meu diálogo é aberta como estajQuery.fn.dialog.open({})
$('body').on('dialogclose', '.ui-dialog', function(){...});
Eu acredito que você também pode fazer isso enquanto cria a caixa de diálogo (copiada de um projeto que eu fiz):
Nota
close: CloseFunction
fonte
var CloseFunction = function() { //Do your custom closing stuff here };
overlay
duas vezes. Isso não é necessário, certo?fonte
A propriedade "close" da caixa de diálogo fornece o evento close para o mesmo.
fonte
Você também pode tentar isso
fonte
Isto é o que funcionou para mim...
fonte
Porque ninguém criou uma resposta com o uso.
on()
em vez debind()
eu decidi criar um.fonte
adicione a opção 'close' como na amostra e faça o que você deseja função inline
fonte
Se eu estou entendendo o tipo de janela que você está falando, não $ (window) .unload () (para a janela de diálogo) não daria o que você precisa?
(E se eu entendi errado, e você está falando sobre uma caixa de diálogo feita via CSS, em vez de uma janela pop-up do navegador, então tudo as maneiras de fechar essa janela são elementos pelos quais você pode registrar manipuladores de cliques.)
Edit: Ah, agora vejo que você está falando sobre diálogos jquery-ui, que são feitos via CSS. Você pode conectar o X que fecha a janela registrando um manipulador de cliques para o elemento na classe ui-dialog-titlebar-close .
Mais útil, talvez, é lhe dizer como descobrir isso rapidamente. Enquanto estiver exibindo a caixa de diálogo, basta abrir o FireBug e Inspecionar os elementos que podem fechar a janela. Você verá instantaneamente como eles são definidos e isso fornece o que você precisa para registrar os manipuladores de cliques.
Portanto, para responder diretamente à sua pergunta, acredito que a resposta é realmente "não" - não há um evento próximo que você possa conectar, mas "sim" - você pode conectar todas as maneiras de fechar a caixa de diálogo com bastante facilidade e obter o que você quer.
fonte
Você pode tentar o seguinte código para capturar o evento de fechamento de qualquer item: página, caixa de diálogo etc.
fonte