0

我在 .dialog() 函数中创建 Jcrop。运行良好,但我无法传递我的 X 和 Y 等值!

函数“updateCoords”有效,但我无法通过它来评估 Ajax!Fire Bug 说我想通过 POST 的变量没有定义,但是“HOW!” - 我在函数 updateCoords() 中定义变量!XD

function open_original(gallery_id, image_name){
    $("#image_crop_canves").dialog({
        modal:true,
        width:634,
        height:741,
        buttons:{
            "SAVE":function(){
                $.ajax({
                    url: "send.php",
                    type: "POST",
                    data: "a=crop&x="+cx+"&y="+cy+"&w="+cw+"&h="+ch+"&gid="+gallery_id+"&id="+image_name,

                    success: function(){
                        $("#image_crop_canves").dialog('close');
                        window.location();
                    }
                });
            },
            "CLOSE":function(){
                $("#image_crop_canves").dialog('close');
            }
        }
    });

    $("#image_crop").html("<div id=\"image_holder_crop\"><img id=\"cropbox\" src=\"../../pics/gallery/" + gallery_id + "/original/" + image_name + "\" /></div>");

    $("#image_crop_canves").dialog('open');

    function updateCoords(c) {
        var cx = c.x;
        var cy = c.y;
        var cx2 = c.x2;
        var cy2 = c.y2;
        var cw = c.w;
        var ch = c.h;
    }

    $('#cropbox').Jcrop({
        aspectRatio: 140/360,
        onSelect: updateCoords,
        setSelect: [0, 0, 140, 360],
        minSize: [140, 360]
    });
}
4

2 回答 2

0

我为这个问题做了一点“破解”——我只是给隐藏字段提供了 jacrop 坐标,然后我在“保存”时阅读它们!

于 2012-07-23T11:11:38.680 回答
0

问题是您在函数中声明变量updateCoords(c),但试图在该函数之外访问它们。这是不可能的。您可以做的是在open_original(gallery_id, image_name)函数中声明这些变量( before $("#image_crop_canves").dialog({ ... })),然后从updateCoords(c)函数中设置它们的值,这样变量就可以在指定的对象中访问。

于 2012-07-23T12:02:23.280 回答