Jcrop in .dialog()

  • 本文关键字:dialog in Jcrop jquery
  • 更新时间 :
  • 英文 :


我在.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]
    });
}

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

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

最新更新