2

我在页面上有两个 dynatree 对象实例。我让树从各种 XML 数据中填充。有一个 onChange 事件让树木改变他们正在使用的数据。我在更改期间做的最后一件事是对数据进行排序。当我调用 sort 函数时,它会为两个实例运行,导致第一个实例被错误地排序。我的这两种代码是:

$("#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 函数的见解都会很棒。

4

1 回答 1

0

这只是一个缓存问题......

于 2012-04-13T20:33:02.990 回答