2012-04-30 4 views
4

jsPlumb을 사용하여 많은 수의 div를 연결합니다 (많은 경우 흐름 차트와 유사 함). 모든 div는 스크롤 할 수있는 하나의 상위 div에 포함되어 있습니다. 아래 코드와 비슷하지만 컨테이너 div 안에 더 많은 div가 있습니다.스크롤 가능한 div 컨테이너의 jsPlumb 요소 처리

<div style="height:500px;width:500px;overflow:auto" id="container"> 
    <div id="node1"></div> 
    <div id="node2"></div> 
    <div id="node3"></div> 
    <div id="node4"></div> 
    <div id="node5"></div> 
</div> 

내 문제는 내가 사업부를 이동하면, jsPlumb에 의해 생성 된 연결 라인은 단지 장소에 머물면서 그들이에 연결하기로되어있는 div에 스크롤되지 않는다는 것입니다. 나는 jsPlumb.repaint()를 사용해 보았지만 여전히 운이 없다. jsPlumb이 caottainer div의 스크롤 오프셋을 고려하지 않은 것 같습니다. 이 문제를 해결할 방법이 있습니까? 나는 div div를 body div로 연결하는 것을 피하고 싶다. 왜냐하면 이것은 매우 짜증나는 CSS/html 코딩을 수반 할 것이기 때문이다.

답변

4

단순히 jsPlumb.repaintEverything()을 사용하는 것으로 나타났습니다. 올바른 위치에 선을 다시 그립니다. jsPlumb.repaint()는 특정 요소의 행을 다시 칠하는 것 같습니다. 예를 들어, jsPlumb.repaint ('div_id_goes_here');

2

귀하의 질문에 답변 해주었습니다. 내가 사용하는 코드로 이것을 확장하겠습니다 :

$('#container').scroll(
       function(){ 
        jsPlumb.repaintEverything(); 
       } 
      ) 

이렇게하면 컨테이너를 스크롤 할 때 연결이 다시 그려지 게됩니다. IE에서는 시나리오 (자식 노드 이동 후 연결 이동)에 따라 조금 지연됩니다.

+0

이 기술은 최신 버전의 jsPlumb에서는 작동하지 않습니다. 누구든지 해결할 수 있습니까? –

관련 문제