JQuery UI 可选框尺寸/属性

JQuery UI Selectable Box Dimensions / Properties

基本上,当我从左向右拖动鼠标时,我想将 tolerance 设置为 fit,当我从右向左拖动鼠标时,我想将 touch 设置为 touch(类似于CAD 程序是如何工作的)。我环顾四周,除了修改标准 JQuery UI 代码以将至少 2 个变量移动到全局范围之外(我更喜欢 而不是 修改任何标准文件),似乎没有这样做的方法。

我能看到的当前方法涉及修改 selectable 方法中的 _mouseDrag 函数,以便将 x1x2 变量移动到更全局的状态读取它们(它们代表所选区域框的水平起点和终点)。

澄清:

您可以在 mousemove 上检查 clientX 是否小于或大于 start 事件中的 clientX,并根据需要修改 tolerance 选项。 像这样:

       start: function (e, ui) {
            startX = e.clientX;
            $('#selectable').mousemove(function (e) {
                if (e.clientX < startX) {
                    $('#selectable').selectable('option', 'tolerance', 'touch');
                } else {
                    $('#selectable').selectable('option', 'tolerance', 'fit');
                }
            });
        }

http://jsfiddle.net/8fpr6c14/2/