これを行うためのより良い方法があると確信していますが、これが選択可能なjsファイル内で行ったことです。
常に複数選択の場合:
オプション'alwaysMulti'(デフォルトはfalse)を追加しました。!event.metaKey
次に、withの3つのインスタンスとwith(!event.metaKey && !options.alwaysMulti)
の2つのインスタンスを置き換えましevent.metaKey
た(event.metaKey || options.alwaysMulti)
。
選択した投げ縄で選択したステータスを切り替えるには、リンクした2番目のページから必要な変更を見つけました。この機能をトリガーするオプション「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の変更は、そのコードサンプルには含まれていません。
うまくいけば、これは他の誰かを助けるでしょう!