2

Jcrop を Javascript の関数に追加すると、jcrop_api 変数が未定義になります。を使用してウィンドウの読み込み時に Jcrop を作成したときに、プラグイン (API を含む) が$(document).ready(function() { ... });
機能していました。だから私は次のものを持っています:

$(document).ready(function() {
    $('#aspectratio').click(function() {
        alert(jcrop_api);
        if (!$(this).is(':checked')) {
            jcrop_api.setOptions({
                aspectRatio: 0
            });
        } else {
            jcrop_api.setOptions({
                aspectRatio: 31 / 12
            });
        }
    });
}

function stopUpload(success, newfile) {
    $('#target').attr('src', newfile);
    $('#preview').attr('src', newfile);
    $('#myfile').val('');
    $('#options').css('display', 'block');
    $('#target').Jcrop({
        onChange: updatePreview,
        onSelect: updatePreview,
        aspectRatio: 31 / 12
    }, function() {
        // Use the API to get the real image size
        var bounds = this.getBounds();
        boundx = bounds[0];
        boundy = bounds[1];
        // Store the API in the jcrop_api variable
        var jcrop_api = this;
    });
}

次の方法で Jcrop を呼び出すなど、他の回答を見てきました。

$.Jcrop($('#cropbox_full'));

これを行うと、何らかの理由で jcrop ボックスがまったく表示されません。非常に奇妙な。基本的に、私の質問、私は何を間違っていますか、そしてこれを(上記と同様の方法で)どのように修正すれば、チェックボックスのクリックからaspectRatioを変更できますか?

4

2 に答える 2

0

jcrop_apiを最初に定義する必要ある

var jcrop_api;
var cWidth = 100;
var cHeight = 100;

jQuery(function($){

  // initialize jcrop
  jcrop_api = $.Jcrop('#target');

  // set the selection area
  jcrop_api.animateTo([0,0,cWidth,cHeight]);

});

本文中画像タグ

<img src="demo_files/sago.jpg" id="target" alt="[Jcrop Example]" />
于 2016-07-19T11:48:08.857 に答える