Some clarification to avoid further confusion:
Based on your html
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
Use the afterClose
callback (not an event
) instead of beforeClose
. For further reference check Tips & Tricks => No.11
The class fancybox
is used to bind the selector to fancybox so your initialization code should look like this
jQuery(document).ready(function ($) {
$('.fancybox').fancybox({
arrows: false,
padding: 0,
helpers: {
overlay: {
locked: false
}
},
afterClose: function () {
location.reload();
}
});
}); // ready
The (valid) fancybox.iframe
class tells fancybox the type of content it should handle, but you don't use it to bind the selector to fancybox.
See JSFIDDLE
NOTE : this is for fancybox v2.x
Try using onClose
event:
$('.fancybox.iframe')
.fancybox({
arrows : false,
padding: 0,
overlay: {
locked: false
},
onClosed: function() {
location.reload();
}
});
According to the API there is no beforeClose
event, but there is onClose
http://fancybox.net/api
You should use
$('.fancybox.iframe').fancybox({
arrows: false,
padding: 0,
helpers: { overlay : {closeClick: false} },
beforeClose: function () {
parent.location.reload(true);
}
});
(Note that the syntax is different between version 1 and 2 of fancybox. The above is for fancybox2)