5

jCrop を使用して画像をトリミングできるプロフィール画像システムがあります。ユーザーがプロセスを数回実行すると、前の画像がまだそこにあるという理由だけで、トリミングの寸法が適切に計算されないことに気付きました。API から destroy() メソッドを試しましたが、それは.jcrop-holderdiv とその子画像要素から画像ソースをクリアしません。

どうすればこれを簡単に取り除くことができますか? ありがとう。

4

2 に答える 2

3

あなたの状況についていくつかの大きな仮定を立てて、私は次のようなことを試すかもしれないと判断しました: <code>$(function(){$( '.jcrop-holder').removeAttr("style"); }); </コード>

それが必要でない場合は、さらに情報を提供してください。

于 2012-09-13T21:46:54.107 に答える
2

古いバージョンの jCrop で同様の問題が発生し、カスタムの破棄関数を作成しました。その要点は次のとおりです。

function crop_reset()
  {
  //Reset coordinates of thumbnail preview container
  $('#crop_preview').data("coords.x", 0);
  $('#crop_preview').data("coords.y", 0);
  $('#crop_preview').data("coords.w", 0);
  $('#crop_preview').data("coords.h", 0);

  //Reset src of jcrop img and copies bound to page specific full size and preview divs
  $("#crop, #crop_preview, .jcrop-holder img").attr("src", ""); 
  }

function crop_start()
  {
  //Initialize and remove previous jCrop containers using load event callback
  $('#crop').Jcrop({
  onChange: showPreview,
  onSelect: showPreview,
  onLoad: hidePreview,
  aspectRatio: 1,
  setSelect: [0, 0, 50, 50],
  minSize: [50, 50],
  allowResize: false,
  allowMove: true
  },function(){$(".jcrop-holder").not(":last").remove();});


  //Remove previous jCrop containers using timer if callback is not supported
  /*
  window.setTimeout(function noblank(){
    $(".jcrop-holder").not(":last").remove();
    }, 1000);
  */
  }
于 2012-09-14T03:44:38.383 に答える