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を変更できますか?