ajax表单提交后的Colorbox使用jquery关闭colorbox

时间:2013-11-23 10:31:21

标签: jquery ajax

我在提交表单时尝试提交表单,然后调用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仅放置在弹出的新窗口中

1 个答案:

答案 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。