这是我的imgSelectArea代码:
ias = $('#<%=imgMain.ClientID%>').imgAreaSelect({
handles: true,
autoHide: false,
minChars: 0,
autoFill: true,
selectOnly: true,
mustMatch: true,
instance: true,
onInit: function (img, selection) {
$("#tagBox").css('display', 'none');
},
onSelectEnd: function (img, selection) {
$("#tagBox").show();
var x1 = selection.x1;
var y1 = selection.y1;
var x2 = selection.x2;
var y2 = selection.y2;
var position = $('#<%=imgMain.ClientID%>').position();
}
});
这很好但我想知道什么时候关闭imgSelectArea,即当你点击覆盖区域时,我想得到通知。我在文档中找不到这个。
这是文档链接:
http://odyniec.net/projects/imgareaselect/usage.html#callback-functions
有没有人解决过这个问题?
答案 0 :(得分:3)
好的,我没有工作的开发环境,所以我无法测试这个但是......
在第421行的jquery.imgareaselect.js
(我正在使用v0.9.8):
function cancelSelection() {
$(document).unbind('mousemove', startSelection)
.unbind('mouseup', cancelSelection);
hide($box.add($outer));
setSelection(selX(x1), selY(y1), selX(x1), selY(y1));
if (!this instanceof $.imgAreaSelect) {
options.onSelectChange(img, getSelection());
options.onSelectEnd(img, getSelection());
}
/*ADD THIS LINE*/
options.onCancelSelection(img);
}
此外,在第461行附近,添加一个默认的空函数:
...
onInit: function () {},
onSelectStart: function () {},
onSelectChange: function () {},
onCancelSelection: function () {}, /* Add This line */
onSelectEnd: function () {}
}, options));
然后您应该像往常一样注册事件处理程序......
ias = $('#<%=imgMain.ClientID%>').imgAreaSelect({
...
mustMatch: true,
instance: true,
onInit: function (img, selection) {
$("#tagBox").css('display', 'none');
},
onCancelSelection: function (img) {
/*Do something*/
},
...
});
这是我在记事本中所能做的最好的事情。如果它明天仍然是一个问题,那么我将使用开发环境。