JQuery UI 可选框尺寸/属性
JQuery UI Selectable Box Dimensions / Properties
基本上,当我从左向右拖动鼠标时,我想将 tolerance
设置为 fit
,当我从右向左拖动鼠标时,我想将 touch
设置为 touch
(类似于CAD 程序是如何工作的)。我环顾四周,除了修改标准 JQuery UI 代码以将至少 2 个变量移动到全局范围之外(我更喜欢 而不是 修改任何标准文件),似乎没有这样做的方法。
我能看到的当前方法涉及修改 selectable
方法中的 _mouseDrag
函数,以便将 x1
和 x2
变量移动到更全局的状态读取它们(它们代表所选区域框的水平起点和终点)。
澄清:
- JQuery = 1.10.2(与 JQuery UI demo's 相同)
- JQuery UI = 1.11.4(与 JQuery UI 演示相同)(第 12059 行是
_mouseDrag
的开始)
- 浏览器 = Ubuntu 14.04 上的 Firefox,一切都是最新的
您可以在 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');
}
});
}
基本上,当我从左向右拖动鼠标时,我想将 tolerance
设置为 fit
,当我从右向左拖动鼠标时,我想将 touch
设置为 touch
(类似于CAD 程序是如何工作的)。我环顾四周,除了修改标准 JQuery UI 代码以将至少 2 个变量移动到全局范围之外(我更喜欢 而不是 修改任何标准文件),似乎没有这样做的方法。
我能看到的当前方法涉及修改 selectable
方法中的 _mouseDrag
函数,以便将 x1
和 x2
变量移动到更全局的状态读取它们(它们代表所选区域框的水平起点和终点)。
澄清:
- JQuery = 1.10.2(与 JQuery UI demo's 相同)
- JQuery UI = 1.11.4(与 JQuery UI 演示相同)(第 12059 行是
_mouseDrag
的开始) - 浏览器 = Ubuntu 14.04 上的 Firefox,一切都是最新的
您可以在 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');
}
});
}