【问题标题】:Jquery Selectable, disabling multiselect by dragging mouseJquery Selectable,通过拖动鼠标禁用多选
【发布时间】:2013-03-12 11:47:46
【问题描述】:

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

【问题讨论】:

  • 所以你想停止使用 ctrl + 鼠标选择多个项目?
  • 点击任何项目并尝试拖动它,鼠标将在您选择的区域创建一个矩形jqueryui.com/selectable
  • forum.jquery.com/topic/… 。他们解释了为什么这是不合逻辑的。请提供您的代码,以便我们修复 ajax 服务调用。
  • 是的,如果我不使用鼠标多选,那么使用可选选项似乎不合逻辑。事实上,我只是编写了自定义 js 来处理多选。实际上,我正在使用带有 jquery 的休息服务,并且对于一次多选或取消选择许多项目,它会一一触发事件,我也可以在调试器中捕获它们,但是当我让它们被连续触发时,服务是仅随机调用一些选定的项目。
  • 我可能错了,实际上,我正在处理自定义服务器控制,所以在每次服务调用后,我通过单击 jquery 按钮部分回发页面,我想问题就在那里。

标签: jquery jquery-ui selectable jquery-ui-selectable


【解决方案1】:

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

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


顺便说一句,我的用例比你的简单:拖动到多选不仅不需要,而且实际上会妨碍。 “妨碍”我的意思是如果您按住 ctrl-click 选择一个项目,然后按住 ctrl-click 取消选择它就可以了。但是,如果在 ctrl-click 取消选择时拖动鼠标(只是稍微),mouseDrag 事件会接管,因此 ctrl 按钮将被忽略,并再次被选中(即取消选择失败)。这是技术人员的解释,用户说的是:有时 ctrl-click to unselect 不起作用。

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2011-03-27
    • 1970-01-01
    相关资源
    最近更新 更多