2011-08-23 6 views
1

키보드 이벤트를 jqPlot으로 바인딩 할 수 있습니까? 왼쪽 및 오른쪽 화살표 키만 사용하여 플롯의 점을 마우스 오버하려고합니다. 또한 각 지점을 강조 표시해야합니다. 내가 클릭하는 방법이 알고JQplot에서 포인트를 가져 오거나 선택하는 키보드 이벤트

, 더블 나는 또한 시프트 클릭을 구현 한 등

$('#chart1').bind('jqplotClick', function(ev, gridpos, datapos, neighbor) { 
    if (neighbor) { 
    } 
}); 

클릭합니다.

$('#chart1').bind('jqplotShiftClick', function(ev, gridpos, datapos, neighbor) { 
    if (neighbor) { 
    }  
}); 

는 정의 :

this.onClick = function(ev) { 
    // Event passed in is normalized and will have data attribute. 
    // Event passed out is unnormalized. 
    if (ev.shiftKey) { 
     var positions = getEventPosition(ev); 
     var p = ev.data.plot; 
     var neighbor = checkIntersection(positions.gridPos, p); 
     var evt = jQuery.Event('jqplotShiftClick'); 
     evt.pageX = ev.pageX; 
     evt.pageY = ev.pageY; 
     $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]); 
    } else { 
     var positions = getEventPosition(ev); 
     var p = ev.data.plot; 
     var neighbor = checkIntersection(positions.gridPos, p); 
     var evt = jQuery.Event('jqplotClick'); 
     evt.pageX = ev.pageX; 
     evt.pageY = ev.pageY; 
     $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]); 
    } 
};​ 

그러나이 모든에

는 관련 클릭이있다. 실제로 지점을 선택하지 않고 동일한 효과를 낼 수 있기를 바랍니다.

아이디어가 있으면 알려 주시기 바랍니다.

+0

if/else 안에 들어가야하는 유일한 코드 행은'evt' 객체의 할당입니다. 방금 시프트 클릭을 처리하기 위해이 솔루션을 직접 사용했지만 정리했습니다. – Tony

답변

0

제가 생각할 수있는 유일한 방법은 문서 자체에 keydown 또는 keypress의 이벤트를 첨부/바인딩하고 이에 따라 주요 작업을 수행하는 것입니다.

This was incorporated into the sample available here.

키보드를 사용하기 위해 결과 프레임 내부를 클릭하는 것을 잊지 마십시오.