这是我的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
有人解决过这个问题吗?
最佳答案
好的,我还没有一个可以正常工作的开发环境,所以我无法对此进行测试,但是...
在第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*/
},
...
});
那是我在记事本中可以做的最好的事情。如果明天仍然是个问题,我将带一个开发环境。