2
ページにdynatreeオブジェクトのインスタンスが2つあります。私はさまざまなXMLデータからツリーを作成しています。 onChangeイベントがあり、そのツリーは使用しているデータを変更します。変更中に最後に行うことは、データを並べ替えることです。ソート関数を呼び出すと、両方のインスタンスで実行され、最初のインスタンスが正しくソートされません。この2つのコードは次のとおりです。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;
}
他の機能は、それはそれはおよそどれ洞察
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;
};
と呼ばれている以外、他のとほぼ同じである機能を使用しています
$("#rightList").dynatree("getRoot").sortChildren(compareNodesRight, true);
ある他の種類を呼び出します。 sortChildren関数は素晴らしいでしょう。
実際には期待どおりに動作するようです。明らかにキャッシングの問題でした。 – claydiffrient