이전에 Raphael에서 일했지만 프로젝트로 돌아와 성능 및 일반적인 코드 품질을 향상시키기 위해 완전히 다시 작성하기로했습니다. 어쨌든, 응용 프로그램은 Raphael을 사용하여 Mind Maps을 만듭니다 (이전 질문을 읽었을 경우 전체 응용 프로그램에 대한 아이디어가 더 많을 것입니다).ZPD 플러그인에서 변수에 Raphael 객체를 저장하십시오.
그래서 paper.circle() 등을 사용하여 캔버스에 노드를 만들고 .drag()를 사용하여 불필요한 작업을 피하려면 Raphael ZPD plugin을 사용하기로 결정했습니다. 플러그인은 완전히 이해하기에는 너무 복잡 합니다만, 약간 편집하려고합니다. 변수 _ 노드에 활성 노드를 저장하고 싶습니다. 이렇게하려면 evt.target
을 받고 할당하는 것만 큼 간단 할 것입니다.하지만 분명히 그렇지는 않습니다. 여기
(나는 할당이 가야한다고 생각 비트) 플러그인의 일부입니다
/**
* Handle mouse button release event.
*/
me.handleMouseUp = function(evt) {
if (evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
if ((me.state == 'pan' && me.opts.pan) || (me.state == 'move' && me.opts.drag)) {
// Quit pan mode
me.state = '';
}
};
내가 주어진 오전 (원을 클릭하면) alert(evt.target);
를 사용 :
[객체를 SVGCircleElement]
이는 evt.target
이 개별 요소를 얻음을 의미하지만 (다른 모양에서는 바뀌지 만) 할당이 실패한 후 _node
을 조작하려고했습니다.
(나는이 간단한 기능이었다로()는 ATTR을 변경하려고 시도) 함수되지 않습니다 : 나는의 오류 메시지가 얻을._node.attr
노드, evt.target, evt.currentTarget 등을 사용하여 많은 변형을 시도했지만, 정확한 출력을 내기 때문에 evt.target
으로 바보 같은 것을 놓친 것 같습니다.
me.
은 코드의 다른 곳에 정의되어 있으므로 위의 링크를 참조하십시오 (전체 플러그인을 게시하는 것보다 낫습니다).
당신이 줄 수있는 도움을 주시면 감사하겠습니다.
감사합니다.
UPDATE : 나는 그것이 내가 _node
에 저장해야 evt.target
것을 지금 100 % 확신하지만 SVG, DOM과 라파엘 사이에 직접 연결이없는 것으로 보인다. SVG 요소를 어떻게 Raphael에 연결할 수 있을지에 대한 아이디어가 있습니까?