이것은 ExtJs 4.2 Charts와 관련이 있습니다.extjs 차트에서 keypress 이벤트를 얻는 방법
사용자가 ctrl 키 + 마우스 클릭으로 열 선택을 누르는 경우에만 열 차트에서 여러 열을 선택해야 할 때 붙어 있습니다. 그래서, 차트의 itemclick 이벤트에서 컨트롤 키 프레스 이벤트를 캡처하는 방법을 찾지 못했습니다.
제안에 보내 주시기 바랍니다
...이것은 ExtJs 4.2 Charts와 관련이 있습니다.extjs 차트에서 keypress 이벤트를 얻는 방법
사용자가 ctrl 키 + 마우스 클릭으로 열 선택을 누르는 경우에만 열 차트에서 여러 열을 선택해야 할 때 붙어 있습니다. 그래서, 차트의 itemclick 이벤트에서 컨트롤 키 프레스 이벤트를 캡처하는 방법을 찾지 못했습니다.
제안에 보내 주시기 바랍니다
...이것은 당신이 취할 수있는 방향에서 촬영이 아닌 확실한 대답이다.
작업중인 패널 또는 뷰포트에 몇 개의 수신기를 추가하고 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);
}
},
과 같아야 것입니다. 여기
는var bIsControlkeyPressed=false;
function setCtrlKey(event){
if (event.ctrlKey) {
bIsControlkeyPressed=true;
}else{
bIsControlkeyPressed=false;
}
alert(bIsControlkeyPressed)
}
<body onmousedown = "setCtrlKey(event)">hello</body>
당신이,이 코드는 글로벌 플래그를 설정합니다 페이지의 아무 곳 (예 : '안녕하세요'이 경우에는 신체 부분)을 클릭하면 ... 코드 조각입니다 ctrl 키가 눌러 진 경우는 true, 그렇지 않은 경우는 false가 설정됩니다. 나는 이것을 할 수있는 다른 방법이 있다는 것을 알고 있지만이 접근법은 IE8에서도 작동합니다 :)
답장을 보내 주셔서 감사합니다. 사실 나는 그것을 시도하고 포함 패널에 이벤트를 추가 할 수 있지만 그런 다음 keypress 이벤트 패널을 사용하는 동안 렌더링되는 div 요소에서 트리거되지 않습니다 HTML 함께 기본적인 문제를 발견했다. 어쨌든 나는 아래에서 설명 할 해결책을 찾았다. – Amit
oyu가 솔루션을 생각해 내면 그것을 보길 좋아할 것입니다. 아마도 그걸 sencha 바이올린으로 던질 수 있습니다. –
Brian H, 내 솔루션은 위의 게시물에서 설명한 내 원래 접근 방식을 기반으로하고 있으며 지금까지 제대로 작동 중입니다 ... – Amit