0

.dialog() 関数内で Jcrop を作成します。うまく動作しますが、X や Y などの値を渡すことができません!

関数「updateCoords」は機能しますが、Ajax で値を渡すことはできません。Fire Bug によると、POST で渡したい変数が定義されていませんが、「どのように!」- 関数 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

問題は、関数内で変数を宣言しているがupdateCoords(c)、その関数の外で変数にアクセスしようとしていることです。これは不可能です。できることは、関数内でこれらの変数を宣言しopen_original(gallery_id, image_name)( before $("#image_crop_canves").dialog({ ... }))、関数から値を設定することですupdateCoords(c)。このようにして、指定されたオブジェクト内で変数にアクセスできるようになります。

于 2012-07-23T12:02:23.280 に答える
0

私はこの問題のためにちょっとした「ハック」をしました - 私は隠しフィールドに jacrop 座標を与えてから、「保存」でそれらを読みました!

于 2012-07-23T11:11:38.680 に答える