2013-03-12 113 views
1

我想在鼠标拖动事件中禁用多选选项,用户可以选择多个按住控制按键。问题是,我在select事件中发送ajax服务调用,如果我选择了相当多的大选项,它会跳过一些。在调试模式下,当我让每个呼叫在断点发送时运行正常。Jquery可选,通过拖动鼠标来禁用多选选择

+0

所以你想停止使用Ctrl +鼠标选择多个项目? – jaychapani 2013-03-12 11:53:53

+1

单击任何项​​目并尝试拖动它,鼠标将创建您选择的区域的矩形http://jqueryui.com/selectable/ – 2013-03-12 12:10:31

+1

http://forum.jquery.com/topic/disable-multiple-select -for-jquery-selectable-ui。他们解释了为什么这是不合逻辑的。请提供您的代码,以便我们修复ajax服务调用。 – Dom 2013-03-12 14:35:57

回答

0

我到目前为止发现的唯一方法是破解代码!当前源代码如下:https://github.com/jquery/jquery-ui/blob/master/ui/selectable.js

您需要基本上完全剥离_mouseDrag,但请保留_mouseStart_mouseStop。侵入性较小的是为其添加一个特殊选项,如果您的标志已设置,则返回_mouseDrag的顶部。


顺便说一句,我的使用情况是比你简单:拖动多个选择不仅没有必要的,但在实际的方式得到。通过“挡道”,我的意思是,如果按住Ctrl单击选择一个项目,然后按住Ctrl键单击取消选择它的作品。但是,如果按住Ctrl键并单击以取消选择,则拖动鼠标(稍微),mouseDrag事件就会接管,因此ctrl按钮将被忽略,并再次被选中(即取消选择失败)。这是技术人员的解释,用户说的是:有时按住Ctrl键单击以取消选择不起作用。