我在提交表单时尝试提交表单,然后调用ajax脚本,然后颜色框应该关闭,响应将显示在父窗口中。
我收到父窗口中显示的回复,但收到回复后颜色框没有关闭
我的Jquery:
$('#product_cover').live("click", function(e){
var checked= $('input:checkbox[name=cover_image]:checked').val();
$.post(baseurl+"ajax_functions/update_product_cover/", {
product_cover: checked,
product_id:product_id,
shop_id :shop_id,
}, function(response){
parent.jQuery.colorbox.close();
$('#product_cover_image').html(response);
});
});
但我已经包含了所有必要的jquery lib文件
尝试以下行动:
parent.jQuery.colorbox.close()
function closebox() {
parent.$.fn.colorbox.close();
}
$.colorbox.close();
注意:表单位于ajax分页颜色框中,jquery仅放置在弹出的新窗口中
答案 0 :(得分:0)
如果表单在弹出窗口中。把它放在顶层或开场白:
function closeColorbox(){
$.colorbox.close();
}
在包含表格的窗口上
$('#product_cover').live("click", function(e){
var checked= $('input:checkbox[name=cover_image]:checked').val();
$.post(baseurl+"ajax_functions/update_product_cover/", {
product_cover: checked,
product_id: product_id,
shop_id: shop_id
}, function(response){
$('#product_cover_image').html(response);
window.opener.closeColorbox();
});
});
如果表单位于colorbox ajaxed页面的内部,则表示您正在访问相同的jQuery对象。所以只做
$('#product_cover').live("click", function(e){
var checked= $('input:checkbox[name=cover_image]:checked').val();
$.post(baseurl+"ajax_functions/update_product_cover/", {
product_cover: checked,
product_id: product_id,
shop_id: shop_id
}, function(response){
$('#product_cover_image').html(response);
$.colorbox.close();
});
});
您只需要确保在加载页面时,colorbox ajaxed页面没有重新加载/加载第二个jquery或colorbox。