jcrop在页面加载后更改图像src

时间:2013-08-21 07:59:08

标签: jquery image jcrop

我正在使用jcrop进行图像裁剪,并希望用户可以选择在图像开始裁剪之前更改图像。

出于某种原因,我无法改变图像。

jsfiddle http://jsfiddle.net/UUKP4/2/

当我查看firefly中的代码时,它会显示两个img元素,另一个位于没有id的jcrop容器中。

如何更改图像?

#jcrop_target {
width:200px;
}


$(function () {
$('#jcrop_target').Jcrop();
});

function chageImage() {
alert("hello");
$('#jcrop_target').attr('src', 'http://eofdreams.com/data_images/dreams/cat/cat-06.jpg');
}

<img src="http://jcrop-cdn.tapmodo.com/v0.9.10/demos/demo_files/pool.jpg" id="jcrop_target" />
<input type='button' value='change image' id='changeImage' onclick='chageImage();'>

3 个答案:

答案 0 :(得分:11)

JCrop会创建一个用于裁剪的图像副本。您只需更改选择器,如下所示:

$('.jcrop-holder img').attr('src', 'http://eofdreams.com/data_images/dreams/cat/cat-06.jpg');

http://jsfiddle.net/UUKP4/4/

答案 1 :(得分:3)

您可以使用setImage()函数。初始化Jcrop时,保存它创建的对象,以便在需要时调用此函数。

var JCropper;

$('#image').Jcrop({ 
  ..setup..
} function() {
  // Save Jcrop object
  JCropper = this;
}

JCropper.setImage('/newimage.jpg');

答案 2 :(得分:1)

如果您不仅要更改网址,还要删除之前图片中的所有样式,则必须这样做:

$('#image').removeAttr('style');