Jointjs 检测纸张上的按键

Jointjs 检测纸张上的按键,jointjs,Jointjs,我有一个看起来很棒的图表,希望在+和-键上添加一个放大和缩小功能。我在文件中添加了一个keydown事件处理程序,它是文件的容器,但不会通过按键触发。这让我觉得我的食谱错了。有没有人试着在一个图表中捕捉关键的笔划,并分享一个食谱 我尝试的代码是: $(paperContainer).keydown(function(event) { console.log("Key press: %O", event); }); 其中paperContainer是my的jQuery对象,它正确地显示了

我有一个看起来很棒的图表,希望在+和-键上添加一个放大和缩小功能。我在文件中添加了一个keydown事件处理程序,它是文件的容器,但不会通过按键触发。这让我觉得我的食谱错了。有没有人试着在一个图表中捕捉关键的笔划,并分享一个食谱

我尝试的代码是:

$(paperContainer).keydown(function(event) {
    console.log("Key press: %O", event);
});
其中paperContainer是my的jQuery对象,它正确地显示了图表。paperContainer是通过以下方式创建的:

var paperContainer = $("<div style='width: 100%; height: 100%; overflow: auto;'>");

从外观上看,我不确定您是否正确地连接到Div元素。如果是类,请尝试使用$.paperContainer;如果有ID,则尝试使用$paperContainer获取div


如果这不起作用,请在chrome中查看,然后跳入控制台

从外观上看,我不确定您是否正确地连接到Div元素。如果是类,请尝试使用$.paperContainer;如果有ID,则尝试使用$paperContainer获取div


如果这不起作用,请在chrome中查看,然后跳入控制台

我通过在文档中添加事件侦听器解决了这个问题:

$(document).on('keydown',function(){//your implementation})

我通过在文档中添加事件侦听器解决了这个问题:

$(document).on('keydown',function(){//your implementation})

你好,谢谢你的回复。我更新了我的问题,展示了paperContainer是如何建造的。它是一个jQuery对象,包含一个DIV,该DIV是JointJS图的容器。浏览器中未报告任何错误,一切正常,但JointJS图中未报告keydown事件除外。根据jquery文档,keydown将仅在关注的元素上调用。我不认为你可以调用这个函数,除非该项被聚焦并注册了一个键控。这是一个好主意。在我的页面中,我添加了一个文本框,并赋予它焦点。我看到它照预期点燃了。接下来,我在图中单击,看到了hilighting的移除。我很愿意相信JointJS图没有焦点。。。但是我不知道该怎么做?你可以使用document.activeElement来检查并查看什么是重点元素。想法不错!!我在文档中添加了一个keydown处理程序,并在按下一个键时转储了完整的事件。当我关注JointJS图时,keydown事件似乎来自根主体元素。这解释了为什么我的DOM keydown在图表有焦点时没有被调用,但留给我的是如何检测JointJS文档上的按键的原始问题。您好,谢谢您的回复。我更新了我的问题,展示了paperContainer是如何建造的。它是一个jQuery对象,包含一个DIV,该DIV是JointJS图的容器。浏览器中未报告任何错误,一切正常,但JointJS图中未报告keydown事件除外。根据jquery文档,keydown将仅在关注的元素上调用。我不认为你可以调用这个函数,除非该项被聚焦并注册了一个键控。这是一个好主意。在我的页面中,我添加了一个文本框,并赋予它焦点。我看到它照预期点燃了。接下来,我在图中单击,看到了hilighting的移除。我很愿意相信JointJS图没有焦点。。。但是我不知道该怎么做?你可以使用document.activeElement来检查并查看什么是重点元素。想法不错!!我在文档中添加了一个keydown处理程序,并在按下一个键时转储了完整的事件。当我关注JointJS图时,keydown事件似乎来自根主体元素。这就解释了为什么当图表有焦点时没有调用DOM keydown,但留给我的是如何检测JointJS文档上的按键的原始问题。