Disabling ctrl-click on jquery ui selectable

2020-08-23 02:35发布

问题:

I was wondering if there is an option on the jQuery UI Selectable that will let me disable the Ctrl+Click, but still keep the draggable for the multiple selection. On my project I want to be able for people to select multiples, but only by dragging, not by Ctrl+clicking.

If there isn't, does anyone know a way I can achieve this?

Any information would be really helpful! :) Thanks!!!

回答1:

Selectable uses the metaKey flag to do multi-select, so you can bind metaKey to be false on the mousedown before calling selectable. Then Ctrl+click will always be off. Make sure to bind before calling selectable though.

$('#selectable').bind("mousedown", function (e) {
            e.metaKey = false;
 }).selectable()

jsFiddle here



回答2:

There is another usage of this good solution above - if you want to be able to just use your mouse click to do all the selecting/unselecting, without the need for holding the Ctrl for multiselects or for unselects - just always set the e.metaKey from EvilAmarant7x's example to true. It was exactly what I needed.

Edit: apparently someone already thought of that: Implement multiple selects with jQuery UI Selectable :)



回答3:

$("#selectable").on("selectablestart", function (event, ui) {
event.originalEvent.ctrlKey = false;
});