我确信有更好的方法来做到这一点,但这是我在可选择的 js 文件中所做的。
对于总是多选:
我添加了一个选项“alwaysMulti”(默认为 false)。然后我替换了 with 的三个实例和with!event.metaKey
的(!event.metaKey && !options.alwaysMulti)
两个实例。event.metaKey
(event.metaKey || options.alwaysMulti)
为了让选择套索切换所选状态,我从链接到的第二页中找到了我需要的更改。我还添加了一个选项“lassoToggle”(默认为 false)来触发此功能。在 _mouseDrag 中,有一个条件if (hit)
,它被更改为以下内容:
if (hit) {
// SELECT
selectee.deselect = false;
if (selectee.selected || (options.lassoToggle && (selectee.startselected && event.metaKey)) {
selectee.$element.removeClass('ui-selected');
selectee.selected = false;
selectee.deselect = true;
}
if (selectee.unselecting) {
selectee.$element.removeClass('ui-unselecting');
selectee.unselecting = false;
}
if (!selectee.selecting && (!options.lassoToggle || !selectee.deselect) {
selectee.$element.addClass('ui-selecting');
selectee.selecting = true;
// selectable SELECTING callback
self._trigger("selecting", event, {
selecting: selectee.element
});
}
if(selectee.deselect && options.lassoToggle) {
selectee.$element.removeClass('ui-selecting');
selectee.selecting = false;
selectee.$element.addClass('ui-unselecting');
selectee.unselecting = true;
// selectable UNSELECTING callback
self._trigger("unselecting", event, {
unselecting: selectee.element
});
}
}
注意:多选的 event.metaKey 更改不在该代码示例中。
希望这对其他人有帮助!