2010-03-15 4 views
1

나는 jsTree을 사용하고있어 매우 좋습니다. 드래그 앤 드롭 할 때 전후 유형을 신경 쓰지 않고 내부 만 사용하고 싶습니다. 의미, 나는 그 부모에 대해서만 관심이 있습니다. 오히려 그 순서는 부모 안의 다른 요소들과 같습니다.jsTree : TYPE 앞뒤에 붙지 않고 내부에서만 사용

내 콜백을 작성하려고 했으므로 항상 내부에있는 부모 노드를 참조합니다. 그러나 아직 어리석은 증거는 아닙니다.

onmove : function (NODE,REF_NODE,TYPE,TREE_OBJ,RB) { 
    if (TYPE == 'inside') { 
     alert('Item to move:'+$(NODE).attr('rel')+' to '+$(REF_NODE).attr('rel')+' '+TYPE); 
    } else if (TYPE == 'after') { 
     alert('Item to move:'+$(NODE).attr('rel')+' to '+$(REF_NODE).parent().parent('li').attr('rel')+' '+TYPE); 
    } 
}, 

사람이 제안이 있습니까의 REF_NODE는 노드로 이동하는 것이 항상 부모가되도록 내가, 내 콜백을 변경하는 방법? 부모의 자녀 인의 형제가 아닌? http://jsbin.com/uroye3/2

예를 시도, Templates 폴더에 다른 폴더를 드래그 : 여기

는 jsbin에 대한 예입니다. 다른 폴더를 폴더 4로 이동한다는 경고를해야합니다. 그러나 Templates 폴더로 드래그하기 전후에 다른 방법을 시도하면 정의되지 않은 폴더가 생기는 경우가 있습니다. 따라서 결과가 항상 예상대로 나타나는 것은 아닙니다. 내가 말했듯이, 나는 항상 부모 폴더,이 경우 4, 다른 폴더가 떨어지는 것을 알고 싶다. jstree 자주 묻는 질문에서 촬영

+0

예에 작은 샘플을 jsbin이 도움이 될 것입니다. 그리고 어리석지 않은 증거로 당신이 의미하는 바는 무엇입니까? 어느 경우에 작동하지 않습니까? – jitter

+0

jsbin 예제가 추가되었습니다. –

답변

2

이 당신에게 도움이 될 수 있습니다

이동하거나 "내부"다른 노드를 노드를 작성, 콜백 REF_NODE 는 새로운 부모 노드를 가리 키지 않습니다. 무엇을할까요?

이것은 버그가 아닙니다. 부모 노드의 하위 노드 중 특정 위치에 노드를 만들 수 있으므로 부모 노드 만 전달하면 이 충분하지 않습니다. 따라서 항상 콜백에 전달 된 TYPE 인수를 확인해야합니다! 당신은 항상 부모 노드와 을 작업 할 경우 - 콜백의 상단에이 줄 을 추가

if(TYPE != "inside") { 
    TYPE="inside"; 
    REF_NODE = $(NODE).parents("li:eq(0)").get(0); 
}