5

我有一个个人资料图片系统,它允许使用 jCrop 进行图像裁剪。我注意到,如果用户多次执行该过程,裁剪尺寸不会被正确计算,因为之前的图像仍然存在。我已经尝试过 API 中的 destroy() 方法,但这并没有从.jcrop-holderdiv 及其子图像元素中清除图像源。

我怎样才能轻松摆脱这种情况?谢谢。

4

2 回答 2

3

对你的情况做了一些巨大的假设,我决定你可以尝试这样的事情:<code>$(function(){$(​'.jcrop-holder').removeAttr("style");​​​ ​​​​​​​});​​​​​</code>

如果这不是你需要的,你应该给我们更多的信息!

于 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 回答