gpt4 book ai didi

jQuery 可选元键事件绑定(bind)与实际按键不同

转载 作者:行者123 更新时间:2023-12-01 06:03:25 25 4
gpt4 key购买 nike

我正在使用 jQuery UI 可选择组件。为了允许多个选择而不按住控制/命令,我有以下内容:(来自另一个线程)

jQuery("#myUnorderedList").bind("mousedown", function(event) {
return event.metaKey = true;
}).selectable();`

这对于选择多个项目并允许拖动进行选择来说效果很好。问题在于,将 mousedown 绑定(bind)到 metaKey 并不能提供与实际按住命令/控制键相同的行为。

这是一个简短的截屏视频,显示了该行为 - screencast example

这是 jsfiddle 的示例(来自另一个用户,不是我自己)- metaKey set to true

在 jfiddle 示例中,假设您通过单击并拖动来选择前 4 个。现在已选定 4 名。由于 metaKey 设置为 true,我们可以单击 5 或 6 添加到选择中。相反,如果您单击并拖动 5 并向上拖动到 4(已选定)上,然后拖回 5 而不释放鼠标,则 4 将变为未选定状态。

尝试同样的事情,但这次按住命令/控制。如果选择了前 4 个,则单击 5(仍然按住 Command/Control)并将其向上拖动到 4 上,然后向下拖动,4 保持选中状态。

基本上,它使选定的项目在被拖动时取消选择,但按下命令/控制键时,选定的项目将保持选定状态。

我对每个停止、开始、选择、取消选择事件的元键进行了console.log,当元键绑定(bind)到mousedown时,它都返回true,但行为与实际按住命令不同关键。

最佳答案

元键的行为在 jQuery 1.7 中发生了变化。

参见Bug #10666 @bugs.jquery.com :

jQuery 1.7 之前

event.metaKey 是根据以下代码分配的:

 if ( !event.metaKey && event.ctrlKey ) {
event.metaKey = event.ctrlKey;
}

但是现在,在 jQuery 1.7 中,代码已更改为以下内容:

 if ( event.metaKey === undefined ) { 
event.metaKey = event.ctrlKey;
}

该代码意味着如果我们的 metaKey 未定义,那么且仅 然后我们将 ctrlKey 分配给 metaKey。

关于jQuery 可选元键事件绑定(bind)与实际按键不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com