Jquery 没有得到按键中断

Jquery 没有得到按键中断,jquery,Jquery,有人看到了吗 为什么我没有听到按键中断?我在橙色框中得到一个点击中断,但如果我在米色框中点击,然后点击一个键,则没有中断 谢谢 $(function () { $('#beigeBox').keydown(function(e) { console.log("In keydown handler"); if(e.keyCode == 68) { // 'D'

有人看到了吗

为什么我没有听到按键中断?我在橙色框中得到一个点击中断,但如果我在米色框中点击,然后点击一个键,则没有中断

谢谢

$(function () {
    $('#beigeBox').keydown(function(e) {                        
            console.log("In keydown handler");
            if(e.keyCode == 68) {  // 'D'
                console.log("Got 68");
            }
    });

    $('#orangeBox').click(function() {                      
            console.log("orangeBox clicked");
    });

});

您的
beigeBox
div不是
contenteditable
,因此不能在其上注册
keydown
事件。另一方面,您的
#orangeBox
div
包含一个
单击处理程序,它确实注册(因为
div
是可单击的)

下面是一个演示,您的
beigeBox
将注册一个
向下键
,因为
内容可编辑
已启用:

试试这个

代码:


嗯,好的,说得好!但是,在实际应用程序中,我有一个复选框,您可以单击它来复制div。我在这里尝试的是为它创建一个Ctrl-D快捷方式。但是要复制的div不一定是contenteditable,我不想强制用户在Ctrl-D工作之前单击某个位置。那么,无论鼠标在哪里,都有办法感知Ctrl-D吗?(这可能会演变成一个新问题。)@Steve——你可以做
$(document)以捕捉按键。你得查一下钥匙码。每次用户按键时运行函数可能不是个好主意。谢谢!这很有效。嗯,不完全是。其他应用程序仍然存在一个问题,首先获取Ctrl-D,但我在一个新的StackOverflow中提出了这个问题。
$(function () {

    $('#beigeBox').keypress(function(event) {

        alert("In keydown handler");       

        if (event.which == 68) {

            event.preventDefault();
            alert("Got 68");
        }                   
    });

    $('#orangeBox').click(function() {

        alert("orangeBox clicked");

    });