【发布时间】:2014-07-31 21:26:41
【问题描述】:
我目前有一个页面,其中有一个由 ajax 提交的表单。
ajax 提交工作正常,但我似乎无法让它工作,因此 FancyBox 仅在表单提交后打开。
ajax表单提交代码为:
$('#create-card-process').ajaxForm({
dataType: 'json',
success: function(data) {
if (data.success) {
console.log(data);
$('#card-saved-success').fadeIn();
$('#card-saved-success').delay(3000).fadeOut();
} else {
alert('Failed with the following errors: '+data.errors.join(', '));
}
}
});
然后我就有了激活 FancyBox 的功能:
$('#card-preview-link').click(function(){
$(".fancybox").fancybox({
beforeLoad: function(){$('#create-card-process').submit();return true;},
maxWidth : 1200,
maxHeight : 800,
preload:true,
fitToView : false,
width : '1200px',
height : '100%',
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none'
});
});
发生的情况是 FancyBox 与表单提交同时加载,因此花式框内的内容不会显示新的变化。
非常感谢。
【问题讨论】:
-
从 ajax 请求的成功回调中调用你喜欢的盒子函数?
-
你必须在success方法里面调用fancybox。该框仅在单击后显示,而不是在服务器响应请求后显示。
标签: jquery ajax fancybox-2