2011-04-01 55 views
8

我想知道是否有一个选项,在jQuery UI选择,这将让我禁用Ctrl +点击,但仍然保持多选的可拖动。在我的项目中,我希望能够让人们选择倍数,但只能通过拖动,而不能通过按Ctrl +点击。禁用ctrl点击jquery ui可选

如果没有,有没有人知道我可以做到这一点?

任何信息都会非常有帮助! :) 谢谢!!!

回答

11

Selectable使用metaKey标志来做多选,所以你可以在调用selectable之前绑定metaKey在mousedown上是false。然后Ctrl +点击将始终关闭。确保在调用selectable之前进行绑定。

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

的jsfiddle here

+0

太感谢你了! :)我一直在寻找这个好几天。呵呵。 – typefasterjoel 2011-04-01 19:45:49

+2

为了防万一有人(像我)在这里得到并试图实现相反的目标(允许多选而不用Ctrl) - 执行'e.metaKey = true;' – 2013-07-23 09:53:11

3

上面有这很好的解决方案的另一个用途 - 如果你希望能够只使用你的鼠标点击来完成所有的选择/取消选择,而不需要保持Ctrl用于多重选择或取消选择 - 只需将EvilAmarant7x示例中的e.metaKey设置为true即可。这正是我所需要的。

编辑:显然有人已经想到这一点:Implement multiple selects with jQuery UI Selectable :)

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