Mam problem z używaniem API fancybox po zamknięciu.
Otwieram tę funkcję, gdy ludzie klikają to:
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
Za tym językiem jest javascript:
$(".fancybox.iframe")
.fancybox({
arrows: false,
padding: 0,
overlay: {
locked: false
},
beforeClose: function () {
location.reload();
}
});
I nigdy nie przeładuje strony po jej zamknięciu. Czy ktoś może mi pomóc? Dziękuję Ci !
Odpowiedzi:
4 dla odpowiedzi № 1Kilka wyjaśnień, aby uniknąć dalszych nieporozumień:
Na podstawie Twojego html
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
Użyj
afterClose
callback (nie anevent
) zamiastbeforeClose
. Aby uzyskać dalszą kontrolę porównawczą Porady & Triki => Nr 11The klasa
fancybox
jest używany do wiązania selektora do fancybox, więc twój kod inicjujący powinien wyglądać takjQuery(document).ready(function ($) { $(".fancybox").fancybox({ arrows: false, padding: 0, helpers: { overlay: { locked: false } }, afterClose: function () { location.reload(); } }); }); // ready
The (valid)
fancybox.iframe
klasa mówi fancybox o typie zawartości, którą powinien obsłużyć, ale nie używasz go do wiązania selektora z fancyboxem.
Widzieć JSFIDDLE
UWAGA : to jest dla fancybox v2.x
1 dla odpowiedzi nr 2
Powinieneś użyć
$(".fancybox.iframe").fancybox({
arrows: false,
padding: 0,
helpers: { overlay : {closeClick: false} },
beforeClose: function () {
parent.location.reload(true);
}
});
(Zauważ, że składnia różni się między wersją 1 i 2 w fancybox. Powyższe dotyczy fancybox2)
0 dla odpowiedzi № 3
Spróbuj użyć onClose
zdarzenie:
$(".fancybox.iframe")
.fancybox({
arrows : false,
padding: 0,
overlay: {
locked: false
},
onClosed: function() {
location.reload();
}
});
Według API nie ma beforeClose
wydarzenie, ale jest onClose