【发布时间】:2012-01-24 19:08:56
【问题描述】:
我正在使用 jQuery UI 可选组件。为了允许在不按住控制/命令的情况下进行多项选择,我有以下内容:(来自另一个线程)
jQuery("#myUnorderedList").bind("mousedown", function(event) {
return event.metaKey = true;
}).selectable();`
这对于选择多个项目并允许拖动选择非常有效。 问题在于将 mousedown 绑定到 metaKey 并不能提供与实际按住命令/控制键相同的行为。
这是一个显示该行为的简短截屏视频 - screencast example
这是一个关于 jsfiddle 的示例(来自另一个用户,而不是我自己)-metaKey set to true
在 jfiddle 示例中,假设您通过单击和拖动来选择前 4 个。现在选择了 4 个。由于 metaKey 设置为 true,我们可以单击 5 或 6 添加到选择中。相反,如果您单击并拖动 5 并向上拖动 4(已选中),然后在不释放鼠标的情况下拖动回 5,则 4 将变为未选中状态。
尝试同样的事情,但这次要保持命令/控制。如果选择了前 4 个,则单击并在 5 上拖动(仍然按下命令/控制)在 4 上然后再向下拖动,4 保持选中状态。
基本上,当被拖动时,它会使选定的项目不被选中,但按下命令/控制键时,被选中的项目保持选中状态。
我已经控制台记录了每个停止、启动、选择、取消选择事件的 metaKey,当 metaKey 绑定到 mousedown 时,它都返回 true,但行为与实际按住命令不同键。
【问题讨论】:
标签: jquery jquery-ui jquery-ui-selectable