Dynatree .sortChildren - PullRequest
       15

Dynatree .sortChildren

2 голосов
/ 28 февраля 2012

У меня есть два экземпляра объектов dynatree на странице.У меня есть деревья, заполненные различными данными XML.Существует событие onChange, в котором деревья изменяют данные, которые они используют.Последнее, что я делаю во время изменений, это сортировка данных.Когда я вызываю функцию сортировки, она запускается для обоих экземпляров, что приводит к неправильной сортировке первого экземпляра.Мой код для этих двух видов:

$("#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);

Он использует функцию, которая почти идентична другой, за исключением того, что она называется

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 было бы здорово.

1 Ответ

0 голосов
/ 14 апреля 2012

Это была просто проблема с кешированием ...

...