私が取り組んでいるアプリケーションを使用すると、ユーザーはビューポートに無制限の数の画像を追加できます。これらの画像では、サイズ変更、ドラッグ、回転、トリミングなどの一連の操作が可能です。トリミング機能には、Jcropプラグインを使用しています。
トリミング用のコントロールアイコンをクリックすると、ライトボックスが表示され、選択した画像が表示され(<img>
要素は同じで、src
属性値のみが毎回変更されます)、ユーザーは画像をトリミングできます。切り抜きアイコンがクリックされたときにトリガーされる関連イベントハンドラーは次のとおりです。
$(document).on("click", "div.cropper", function(){
var ctrl = $(this),
ref = ctrl.attr("reference"),
obj = returnObj(objects,ref),
target = $("#crop-target")
crop_params = {};
target.attr("src",obj.src);
target.Jcrop({
onSelect: function(c){
crop_params = c;
}
});
});
上記のコードを考えると、トリミングは完全に機能しますが、最初の画像でのみ試してみます。その後、他の画像の「クロッパー」アイコンをクリックすると、最初の画像が表示されます。
この問題を回避するにはどうすればよいですか?
PS:Jcropに関する既存の質問を検索しましたが、特定の問題に対する答えが見つかりませんでした。