无论我如何调用close
方法,我似乎无法使其正常工作。
我尝试了所有可能的变体:
$.fancybox.close();
parent.$.fancybox.close();
$.fn.fancybox.close();
etc...
无论代码在何处或如何在我尝试在fancybox上调用close
方法,它总是返回没有对象,并且该close是未定义的。我一直在失去fancybox的参考资料。
首先,我打开一个带有简单链接的fancybox窗口
<a href='".base_url('item/map_view/'.$item_id)."' class='itembox fancybox.ajax' data-fancybox-type='ajax' data-itemid='".$item_id."'>".$item['titulo']."</a>
然后,从已经打开的fancybox窗口,一个按钮触发另一个按钮打开(注意:它关闭第一个)。
<input type="button" value="Eu quero!" class='itembox fancybox.ajax' href="<?php echo base_url("email/quer_item/".$idata["id"])?>" data-fancybox-type='ajax'>
最后,我希望能够在第二个fancybox窗口上处理表单的提交,它将显示一个消息框(使用Messi)并关闭fancybox。但我开始认为这可能是不可能的。
处理提交的代码:
$('#email_queroitem').submit(function(e) {
e.preventDefault();
$.post($("#email_queroitem").attr("action"),
$("#email_queroitem").serialize(), function(data) {
var json = myParseJSON( data );
if( json.status=="OK" ) {
$.fancybox.close(); // this is where I want to close
new Messi(json.msg, {title: 'Email enviado com sucesso!',
titleClass: 'success', modal: true });
} else {
new Messi( json.msg, {title: 'Oops...', titleClass: 'anim error',
buttons: [{id: 0, label: 'Fechar', val: 'X'}]});
}
}).fail( function() { general_error(); } );
return false;
});
答案 0 :(得分:0)
我在使用colorbox时遇到了类似的问题。我最终想到的是将对colorbox对象的初始调用保存到全局命名空间。例如:
globalNamespace.myBox = $colorbox({href:'whatever'});
$.post('http://yoururl').success(function(data){
// call close function like this
globalNamespace.myBox.close()
});