我正在使用JCrop来裁剪图像。 JCrop是一个图像裁剪插件。一个页面包含3个要裁剪的图像。
这是我为jcrop初始化数组的方式:
var jcrop = [];
然后我有:
$('img.picture').each(function(){
imgcrop = $(this);
imgcrop.Jcrop({
bgColor: 'white',
aspectRatio: 1
}, function(){
jcrop.push(this);
});
});
问题在于,当我jcrop[1].setImage( '/image/no-picture.jpg' );
时,它有时会改变第一张或第三张图像。
$('div.deletePhoto a').bind('click', function(e){
e.preventDefault();
var index =$('div.deletePhoto').index($(this).parent());
$.post('/deletePicture', function(data){
alert(index);
jcrop[index].setImage( '/image/no-picture.jpg' );
jcrop[index].disable();
});
});
变量index
没问题,但jcrop[index]
不是。
HTML:
<!-- pictures -->
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
我该如何解决?
答案 0 :(得分:0)
$('img.picture').each(function(){
imgcrop = $(this);
imgcrop.Jcrop({
bgColor: 'white',
aspectRatio: 1
}, function(){
jcrop.push($(this)); //the $(this) is important
});
});
和
$('div.deletePhoto a').bind('click', function(e){
e.preventDefault();
var index = $('div.deletePhoto').index($(this).parent()); //return it to this
$.post('/deletePicture', function(data){
alert(jcrop[index].attr('id'));
jcrop[index].setImage( '/image/no-picture.jpg' );
jcrop[index].disable();
});
});
HTML:
<!-- pictures -->
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" id="img_1" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" id="img_2" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
<div class="blu_3">
<div class="imgWrapper">
<img class="blu_10 picture" id="img_3" />
<div class="delete deletePhoto"><a href="#" title="delete">[ x ]</a></div>
</div>
<input class="crop" type="button" value="crop" />
</div>
所以我已经设置了每个img标签id =“img_1”,id =“img_2”,img =“img_3”,上面的代码检查了它并且它正常工作,所选的每个图像都是正确的id。