javascript - 在 Chrome 上使用 Jquery 检测 Shift + 单击

标签 javascript jquery html

我正在尝试使用 javascript 检测 Shift 单击,但由于某种原因它仅适用于 IE

.click(function (e) {
    if (e.shiftKey) {
        Rain();
    }
});

这是在 IE 中适用于我的代码,我如何在 Chrome 上检测到它

最佳答案

我不认为有一个明确的组合,但你可以自己制作。一个(粗略的)例子:

<div id="someElement">
    Click me for an alert!
</div>

<script>
var shiftPressed = false;
$(document).keydown(function(event) {
    shiftPressed = event.keyCode==16;
});
$(document).keyup(function(event) {
    if( event.keyCode==16 ){ shiftPressed = false; }
});

$('#someElement').on('click', function(e){
    if( shiftPressed ){
        alert("Shift and click!");
    }
    else{ alert("Nope"); }

});
</script>

您可以通过仅在按键按下时绑定(bind) .keyup() 来改进它,以便最大限度地减少事件数量。您应该在 if 语句之外添加尽可能少的逻辑,因为此事件被触发很多

关于javascript - 在 Chrome 上使用 Jquery 检测 Shift + 单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43141373/

相关文章:

javascript - 删除 Fabric.js Canvas 上的多个对象

javascript - jquery每个带参数的循环调用函数

jquery - 从 jQuery 文档加载 Google Analytics 准备好了吗?

html - 为什么这个 html 表格会得到额外的单元格?

javascript - HTML 中的多个音频文件,如果单击两个,较旧的文件应停止播放

javascript - 如何在vue loader组件中导入JS脚本?

javascript - 两个 <nav> 元素 - 桌面与移动

html - CSS:流体边栏 - 流体内容

php - xampp 中的样式与我桌面上的文件不同?

c# - 如何在 Web 应用程序中更改文本框输入语言