如何在extjs图表中获取keypress事件

时间:2014-11-18 14:14:04

标签: extjs charts selection keypress

这与ExtJs 4.2图表有关。

只有当用户通过鼠标单击按ctrl键+列选择时,我才会在列表中选择多个列。所以,我无法找到如何在图表的itemclick事件中捕获控制键按下事件。

请发送您的建议......

2 个答案:

答案 0 :(得分:0)

这是你可能采取的方向,而不是明确的答案。

您可能会考虑向正在使用的Panel或Viewport添加几个侦听器,添加keydown事件和keyup事件,不确定是否可行,您可能会将其添加到DOM模型中窗口也是。你看到我在这里看到的问题是你必须首先关注某些东西,你可能至少会有窗口的焦点,如果你把这个监听器放在实际的图表上,你必须通过点击关注它首先在图表上,然后选择密钥,然后再次点击,我想到的很多动作,而不是直观的。

然后在按下按键时将全局变量设置为true,并在按下按键时将其设置为false。

然后在您在图表系列上创建的itemmousedown事件中,您可以读取变量并按预期使用它。

这是听众应该是什么样子

series: [{
    type: 'column',
    ...
    listeners: {
        itemmousedown: function(item, eOpts) {
            .... // get your global variable here.
            console.log(item);
            console.log(eOpts);
        }
    },

答案 1 :(得分:0)

我找到了一个解决方案,它工作正常,但它是一种解决方法。

以下是代码段...



var bIsControlkeyPressed=false;

function setCtrlKey(event){
    if (event.ctrlKey) {
        bIsControlkeyPressed=true;
    }else{
        bIsControlkeyPressed=false;
    }
  alert(bIsControlkeyPressed)
}

<body onmousedown = "setCtrlKey(event)">hello</body>
&#13;
&#13;
&#13;

当您单击页面上的任何位置(正文部分,即“#hello&#39;在这种情况下)”时,如果同时按下ctrl键,此代码将全局标志设置为true,否则设置为false。我知道还有其他方法可以做到,但这种方法也适用于IE8:)