javascript - 模拟按住 Ctrl 键

标签 javascript jquery events keydown multi-select

我目前正在尝试更改多选元素的默认行为,以便用户可以选择和取消选择多个值,而无需一直按 Ctrl 键。

我找到了一个简单的解决方案 here ,但这在 ie8 中不起作用(因为在 ie 中, onmousedown does not apply to option elements )。

但我想,只要鼠标悬停在多选上,就可以模拟按下的控制键:

$(document).ready(function() {
    $('select').hover(function(e) {
        var kde = jQuery.Event("keydown");
        kde.ctrlKey = true;  //something like this
        kde.keyCode = 17;    //or this - i don't know
        $(e.target).trigger(kde);        
    });
});

为什么这不起作用?

  • Ctrl键是不是又直接松开了?
  • 代码有问题吗?
  • 我是否完全遗漏了其他东西?

最佳答案

您无法通过编程方式按下键盘按钮来模拟此类事件,就像您无法通过在用户按下 ashift 键来生成大写字母 A > 他们键盘上的键。此外,即使它起作用,它也不会起作用:在 Mac 上,您按 cmd 而不是 ctrl 来选择多个元素。

很遗憾,您将不得不放弃这种方法并寻找其他选择。

关于javascript - 模拟按住 Ctrl 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396182/

相关文章:

Jquery + CSS 动画

javascript - 修改单元格类别时提高数据表性能

javascript - header 访问控制允许来源 :* not working properly on Spring MVC

postgresql - 当数据库连接关闭或丢失时, Hook Postgres 服务器运行代码?

jquery - 你可以将 Backbone listenTo与jquery对象一起使用吗?

javascript - 谷歌图表 HTML 注释

javascript - 使用可用属性而不是范围绘制热图 D3 React

javascript - Jquery 1.9,JS - 函数未在 Chrome 中定义

javascript - 重置 document.ready ($.getScript)

javascript - 音频/语音比较和getUserMedia