(原)
官网
在2.X以下在版本中,api提供了release()方法用于取消选框。但在2.X以上的版本中已经没有这个方法了。于是各种查找,终于解决了如何取消选框(官网的demo中是没有这部分的)
先上代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/Jcrop.css"/>
<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/Jcrop.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var jcropApi;
$(document).ready(function() {
$('#materialTargetPic').Jcrop({
onChange: showCoords,
onSelect: showCoords
},function() {
jcropApi = this;
});
var container = $('#materialTargetPic').Jcrop('api').container;
container.on('cropstart',function(e,s,c){
$('.jcrop-shades').show();
});
})
function showCoords (c) {
$('#x1').val(c.x);
$('#y1').val(c.y);
$('#x2').val(c.x2);
$('#y2').val(c.y2);
$('#w').val(c.w);
$('#h').val(c.h);
}
function sureSelected() {
jcropApi.removeSelection(jcropApi.ui.multi[0])
$('.jcrop-shades').hide();
}
</script>
</head>
<body>
<div>
<img src="img/sago.jpg" alt="" id="materialTargetPic"/>
</div>
<input type="text" id="x1" />
<input type="text" id="y1" />
<input type="text" id="x2" />
<input type="text" id="y2" />
<input type="text" id="w" />
<input type="text" id="h" />
<input type="button" value="click" onclick="sureSelected()"/>
</body>
</html>
先看看 removeSelection方法:
在2.X的API中提供了removeSelection方法,只是因为此版本可以有多个选择框,所以这里的removeSelection方法需要接收一个选则框,如果没有传入是不会删除的,并且会返回一个选择框对象。由于我只需要用到一个选择框,也只会有一个,所以这里传入了一个[0],
jcropApi.removeSelection(jcropApi.ui.multi[0])
如果只是调用这个方法,选择框是去掉了,但是阴影部分还在
然后就会看到后面的调用,将阴影部分隐藏起来
$('.jcrop-shades').hide();
但是如果再次选框,刚才被隐藏的地方是不会显示出来,那么需要在选时中就要把阴影部分在加进来。
var container = $('#materialTargetPic').Jcrop('api').container;
container.on('cropstart',function(e,s,c){
$('.jcrop-shades').show();
});
以上代码参考官方文档部分: