parent.jQuery.fancybox.close();
следует вызывать из iframe
, открытого в fancybox. В вашем случае вы открываете inline
контент, поэтому префикс parent
не нужен. Кроме того, вы должны предоставить правильную структуру вашего встроенного содержимого и вызвать оттуда функцию закрытия.
Так что ваш встроенный контент должен выглядеть так:
<div style="display: none;">
<div id="content">
<p>Nunc porttitor pellentesque magna a pulvinar. Vestibulum id diam lectus. Praesent vel dictum est.</p>
<a href="javascript:;" id="close">Close</a>
</div>
</div>
из-за вышесказанного вам не нужен этот css
#content {
display: none;
}
, поскольку #content
уже находится внутри скрытого div
.
тогда ваша функция закрытия может быть отделена от скрипта fancybox ... также обратите внимание на изменения в скрипте fancybox ниже:
$(document).ready(function(){
$('#close').on('click', function(){
//console.log($(this).parent);
$.fancybox.close();
}); //on
/*
// you could also do
$('#close').click(function(){
$.fancybox.close();
});
*/
$('#launch').click(function(){
$.fancybox({
'width': 300,
'href': '#content',
'onCleanup':function () {
$("#content").unwrap();
}
});//fancybox
}); // click
}); //ready
это для Fancybox v1.3.x, версия, которую вы используете. Также вы должны использовать jQuery v1.7.x, если хотите, чтобы метод .on()
работал.