2014-12-10 2 views
2

D3을 사용하여 강제 방향 그래프를 만들었으며 클릭 버튼을 사용하여 이동하는 기능이 있습니다. 내가하고 싶은 것은 Shift + 클릭으로이를 수행하는 것입니다.shift + click을 javascript에서 사용하는 방법?

이 시프트 버튼이 나는 마우스를 클릭하고 동안 클릭하면보고있다 :

지금이 코드를

.on("click", function() { 
    if (d3.event.shiftKey) { 
     console.log("Mouse+Shift pressed"); 
     svg.append('svg:rect') 
    .call(zoom); 
    } 
}) 

줌 기능 :

var minZoom = 0.2, 
    maxZoom = 2; 
    var zoom = d3.behavior.zoom() 
    .on("zoom", redraw) 
    .scaleExtent([minZoom, maxZoom])//-call zoom but put scale extent on to limit zoom in/out 
    ; 

기능을 다시 그리기 번역 및 규모 조정 :

function redraw() { 
    inner.attr("transform","translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")"); 
    } 

이제는 이러한 종류의 작업이 가능합니다. 내가 그것을 디버깅하기 위해 콘솔 로그를 놨는데 무슨 일이 일어나는가, shift 키를 누른 상태에서 'console.log string'을 클릭하면 마우스 버튼을 놓을 때만 출력된다.

하지만 마우스 단추가 눌려져있을 때 작동하고 싶습니다. mousedown, mouseover 및 click을 시도했습니다. 다른 방법이 있습니까?

내가 뭘 잘못하고 있니?

답변

1

jQuery의 .keydown() 이벤트를 사용해야합니다. 그것은 당신의 문제를 해결해야합니다. http://api.jquery.com/keydown/

그것이 도움이되었습니다 희망 :

다음은 문서에 대한 링크입니다!

관련 문제