Я уверен, что есть лучший способ сделать это, но вот что я сделал в выбираемом файле js.
Для всегда множественного выбора:
Я добавил опцию 'AlwaysMulti' (по умолчанию false). Затем я заменил три экземпляра !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 для множественного выбора отсутствует в этом примере кода.
Надеюсь, это поможет кому-то еще!