我怎么知道imgAreaSelect什么时候关闭?

时间:2011-10-14 16:36:49

标签: javascript jquery

这是我的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

有没有人解决过这个问题?

1 个答案:

答案 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*/
                },
                ...
            });

这是我在记事本中所能做的最好的事情。如果它明天仍然是一个问题,那么我将使用开发环境。