2012-02-28 2 views
2

페이지에 두 개의 dynatree 객체 인스턴스가 있습니다. 나는 다양한 XML 데이터로부터 나무를 채웠다. onChange 이벤트에는 나무가 사용중인 데이터를 변경하는 이벤트가 있습니다. 변경 중에 마지막으로해야 할 일은 데이터를 정렬하는 것입니다. sort 함수를 호출하면 두 인스턴스 모두에 대해 실행되어 첫 번째 인스턴스가 잘못 정렬됩니다. 이 두 가지 코드는 다음과 같습니다.Dynatree .sortChildren

$("#rightList").dynatree("getRoot").sortChildren(compareNodesRight, true); 

이 함수는 비교 함수로 사용됩니다.

var compareNodesLeft = function(a,b) 
{ 
    //Find the sequence tags for both a and b. 
    var aKey = a.data.key; 
    var bKey = b.data.key; 
    var aValue = $(GLOBAL_LEFT_XML).find("item[id ='" + aKey + "'] data sequence").text(); 
    var bValue = $(GLOBAL_LEFT_XML).find("item[id ='" + bKey + "'] data sequence").text(); 
    return aValue > bValue ? 1 : aValue < bValue ? -1 : 0; 
} 

다른 기능은

$("#rightList").dynatree("getRoot").sortChildren(compareNodesRight, true); 

가 IT를 제외한 다른

var compareNodesRight = function (a, b) 
{ 
console.log("Comparing RIGHT"); 
//Find the sequence tags for both a and b. 
var aKey = a.data.key; 
var bKey = b.data.key; 
var aValue = $(GLOBAL_RIGHT_XML).find("item[id ='" + aKey + "'] data sequence").text(); 
var bValue = $(GLOBAL_RIGHT_XML).find("item[id ='" + bKey + "'] data sequence").text(); 
return aValue > bValue ? 1 : aValue < bValue ? -1 : 0; 
}; 

정보] 어떤 통찰력

라고 거의 동일합니다 함수를 사용하다 다른 종류를 호출합니다. sortChildren 함수는 훌륭합니다.

+0

실제로 예상대로 작동하는 것 같습니다. 분명히 캐싱 문제였습니다. – claydiffrient

답변