用于“ctrl”的JavaScript或Jquery事件处理程序+更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于“ctrl”的JavaScript或Jquery事件处理程序+更改相关的知识,希望对你有一定的参考价值。

每次(有或没有CTRL按下),我得到相同的日志; control is not pressed。有人可以解释一下是什么原因。

$("Selector").on("change",function(e){
    if(e.ctrlKey){
        console.log("ctrl is pressed");
    }
    else{
        console.log("ctrl is not pressed");
    }
});
答案

原因是因为change事件不包含键盘信息。为此,您需要在CTRL键的keydown上设置的父元素上设置一个标志,并在发生更改事件时检查该标志是否为true

像这样的东西:

var ctrlKeyHeld = false;

$(document).keydown(function(e) {
    ctrlKeyHeld = e.ctrlKey;
}).keyup(function() {
    ctrlKeyHeld = false;
})

$("#foo").on("change",function(e){
    if (ctrlKeyHeld){
        console.log("ctrl is pressed");
    }
    else{
        console.log("ctrl is not pressed");
    }
});

Working example

以上是关于用于“ctrl”的JavaScript或Jquery事件处理程序+更改的主要内容,如果未能解决你的问题,请参考以下文章

jquer 事件,选择器,dom操作

javascript tamañojavascriptstring dimensiones dinamicamente ancho texto nodo dom elemento jquer

CSS 或 Javascript 禁用从 CTRL + A 突出显示的文本选择

jQuery了解

如何通过javascript实现CTRL或SHIFT + <letter>的快捷键组合?

如何使用 jquery 或 javascript 在元素中模拟 Ctrl+A 的行为? [复制]