Я использую компонент выбора jQuery UI.Для того, чтобы разрешить множественный выбор без удержания элемента управления / команды, у меня есть следующее: (из другого потока)
jQuery("#myUnorderedList").bind("mousedown", function(event) {
return event.metaKey = true;
}).selectable();`
Это отлично работает и отлично подходит для выбора нескольких элементов и позволяет перетаскивать для выбора.Проблема заключается в том, что привязка mousedown к metaKey не обеспечивает такое же поведение, как при фактическом удержании клавиши команды / управления.
Вот короткая демонстрация экрана, показывающая поведение - пример демонстрации
Вот пример для jsfiddle (от другого пользователя, а не от меня) - metaKey установлен в true
В примере с jfiddle, скажем, если вы выбираете первые 4, щелкая и перетаскивая.4 выбраны.Так как metaKey установлен в true, мы можем нажать 5 или 6, чтобы добавить к выбору.Если вместо этого вы нажмете и перетащите на 5 и выше на 4 (который уже выбран), затем перетащите обратно на 5, не отпуская мышку, тогда 4 станет невыбранным.
Попробуйте то же самое, но на этот раз удерживая команду / контроль.Если выбраны первые 4, то вы нажимаете и перетаскиваете 5 (все еще с нажатой командой / управлением) вверх над 4 и обратно, 4 остается выбранным.
По сути, он делает невыбранные выбранные элементы при перетаскивании, но с нажатой клавишей управления / управления выбранные остаются выбранными.
У меня есть metaKey для console.log длякаждое событие останова, запуска, выбора, отмены выбора и все это возвращает true, когда metaKey привязан к mousedown, но поведение отличается от фактического удержания клавиши команды.