我有一个个人资料图片系统,它允许使用 jCrop 进行图像裁剪。我注意到,如果用户多次执行该过程,裁剪尺寸不会被正确计算,因为之前的图像仍然存在。我已经尝试过 API 中的 destroy() 方法,但这并没有从.jcrop-holder
div 及其子图像元素中清除图像源。
我怎样才能轻松摆脱这种情况?谢谢。
我有一个个人资料图片系统,它允许使用 jCrop 进行图像裁剪。我注意到,如果用户多次执行该过程,裁剪尺寸不会被正确计算,因为之前的图像仍然存在。我已经尝试过 API 中的 destroy() 方法,但这并没有从.jcrop-holder
div 及其子图像元素中清除图像源。
我怎样才能轻松摆脱这种情况?谢谢。
对你的情况做了一些巨大的假设,我决定你可以尝试这样的事情:<code>$(function(){$('.jcrop-holder').removeAttr("style"); });</code>
如果这不是你需要的,你应该给我们更多的信息!
我在旧版本的 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);
*/
}