Korzystam z jquery-ui-dialog
wtyczki
Szukam sposobu na odświeżenie strony, gdy w niektórych okolicznościach okno dialogowe jest zamknięte.
Czy istnieje sposób na uchwycenie zdarzenia zamknięcia z okna dialogowego?
Wiem, że mogę uruchomić kod po kliknięciu przycisku zamykania, ale nie obejmuje to użytkownika zamykającego za pomocą klawisza Escape lub znaku X w prawym górnym rogu.
$('div#popup_content')
prawda? Czym powinienem to zastąpić, mając na uwadze, że moje okno dialogowe jest otwarte w ten sposóbjQuery.fn.dialog.open({})
$('body').on('dialogclose', '.ui-dialog', function(){...});
Wierzę, że możesz to zrobić również podczas tworzenia okna dialogowego (skopiowanego z projektu, który zrobiłem):
Uwaga
close: CloseFunction
źródło
var CloseFunction = function() { //Do your custom closing stuff here };
overlay
dwa razy. To nie jest konieczne, prawda?źródło
Właściwość „close” okna dialogowego daje zdarzenie close dla tego samego.
źródło
Możesz także spróbować tego
źródło
To działało dla mnie ...
źródło
Ponieważ nikt nie stworzył odpowiedzi za pomocą.
on()
zamiastbind()
zdecydowałem się go stworzyć.źródło
dodaj opcję „zamknij” jak pod próbką i rób, co chcesz, funkcję wstawiania
źródło
Jeśli rozumiem typ okna, o którym mówisz, czy $ (window) .unload () (dla okna dialogowego) nie da ci haka, którego potrzebujesz?
(A jeśli źle zrozumiałem, a mówisz o oknie dialogowym utworzonym za pomocą CSS, a nie o wyskakującym oknie przeglądarki, wszystkie sposoby zamykania tego okna są elementami, dla których można zarejestrować uchwyty kliknięć.)
Edycja: Ach, rozumiem teraz, że mówisz o dialogach jquery-ui, które są tworzone przez CSS. Możesz zaczepić X, który zamyka okno, rejestrując moduł obsługi kliknięć dla elementu w klasie ui-dialog-titlebar-close .
Być może bardziej przydatne jest to, że wiesz, jak szybko to rozgryźć. Wyświetlając okno dialogowe, po prostu otwórz FireBug i sprawdź elementy, które mogą zamknąć okno. Natychmiast zobaczysz, jak są zdefiniowane, a to daje ci to, czego potrzebujesz, aby zarejestrować moduły obsługi kliknięć.
Tak więc, aby bezpośrednio odpowiedzieć na twoje pytanie, uważam, że odpowiedź brzmi naprawdę „nie” - nie ma zdarzenia zamykającego, które można zaczepić, ale „tak” - można zaczepić wszystkie sposoby, aby zamknąć okno dialogowe dość łatwo i uzyskać czego chcesz.
źródło
Możesz wypróbować następujący kod do przechwytywania zdarzenia zamykającego dla dowolnego elementu: strony, okna dialogowego itp.
źródło