18

画像の jcrop を解除するにはどうすればよいですか?

私はjcropを追加しています;

$('#imgThumbnailer').Jcrop({
    onChange: statusCrop,
    onSelect: statusCrop,
    bgColor: 'black',
    bgOpacity: .3
});

元に戻すにはどうすればよいですか?

編集:

$('#imgThumbnailer').attr("src", $obj.attr('thumbnailer_link'));

var dlg = $("#ThumbnailDialog").dialog({
    modal: false,
    draggable: false,
    position: 'center',
    zIndex: 99999,  // Above the overlay
    closeText: '',
    width: 510,
    height: 500,
    open: function () {
        $('body').css("overflow", "hidden");
        if ($.browser.msie) {
            $('html').css("overflow", "hidden");
        }
        $("#loader").show();

        var ratio = parseFloat($obj.attr('thumbnailer_ratio'));
        jcrop_api = $.Jcrop('#imgThumbnailer', {
            onChange: statusCrop,
            onSelect: statusCrop,
            bgColor: 'black',
            bgOpacity: .3,
            aspectRatio: ratio
        });

    },
    close: function () { $('body').css("overflow", "auto"); if ($.browser.msie) { $('html').css("overflow", "auto"); } $("#loader").hide(); },
    buttons: {
        'Set Thumbnail': function () {
            $(this).dialog('close');
        },
        Cancel: function () {
            jcrop_api.destroy();
            jcrop_api = null;
            $(this).dialog('close');
        }
    }
}).parent();
dlg.appendTo(jQuery('form:first'));

上記のコードは私には機能しません。これは、jqueryダイアログ内でこれを使用しているという事実に関係していると思います。http://code.google.com/p/jcrop/issues/detail?id=21

それを修正する方法が正確にわかりません。

4

3 に答える 3

78

ソースを読んだ後、v0.9.8で機能する簡単なソリューションを見つけました(他の投稿された回答は、現在開発バージョンでのみ機能します)。Jcrop を次のように開始した場合:

$('#imgThumbnailer').Jcrop({
    onChange: statusCrop,
    onSelect: statusCrop,
    bgColor: 'black',
    bgOpacity: .3
});

その後、次の方法で API にアクセスし、Jcrop を破棄できます。

JcropAPI = $('#imgThumbnailer').data('Jcrop');
JcropAPI.destroy();

質問者にとってはおそらく遅すぎますが、これがグーグルからこのページに出くわした誰かに役立つことを願っています!

于 2011-02-20T18:59:51.537 に答える
28

編集: jcrop を画像に追加するときに、API への参照を維持する必要があるようです。

// assign jcrop to jcrop_api
var jcrop_api = $.Jcrop('#imgThumbnailer', {
    onChange: statusCrop,
    onSelect: statusCrop,
    bgColor: 'black',
    bgOpacity: .3
});


// when you want to remove it
jcrop_api.destroy();
于 2010-12-16T23:36:38.713 に答える
3

Jcrop のバージョン v0.9.9 では、次のようにする必要があります。

var jcrop_api;
$('#target').Jcrop(options,function(){
    jcrop_api = this;
});

作成者の厚意: http://deepliquid.com/content/Jcrop_API.html

于 2014-08-26T13:41:00.820 に答える