我尝试使用此处包含的移动示例,并且不确定。我对E对象的最初探索无法找到项目索引属性。我想知道要移动的项目的旧索引和项目的新索引。
var tree = anychart.data.tree(getData(), anychart.enums.TreeFillingMethod.AS_TABLE);
tree.listen(anychart.enums.EventType.TREE_ITEM_MOVE, function(e){
chart.title.text("The "+e.itemIndex+" item was moved");
});
在这里见我的小提琴:http://jsfiddle.net/ax2t5hvt/
需要一些技巧,保存索引:
chart.listen(anychart.enums.EventType.ROW_MOUSE_DOWN, function(e) {
var treeDataItem = e.item;
absoluteSourceIndex = treeDataItem.meta('index');
});
然后您像这样:
treeData.listen(anychart.enums.EventType.TREE_ITEM_MOVE, function(e) {
/*
Event e contains the following useful fields:
e.type - Event type
e.item - Moved item.
e.target - Target data item that becomes a parent of the moved item.
If is null, the parent is tree itself and moved item becomes root.
e.targetIndex - Index of moved item in target item
(or in roots of tree if e.target is null)
e.source - Source data item, where the item moved from.
e.sourceIndex - Old index of the moved item of the previous parent.
*/
var treeDataItem = e.item;
alert('Old absolute index: ' + absoluteSourceIndex + 'n' +
'New absolute index: ' + treeDataItem.meta('index') + 'n' +
'Old index in old parent tree data item: ' + e.sourceIndex + 'n' +
'New index in new parent tree data item: ' + e.targetIndex);
});
这是一个有效的示例:https://jsfiddle.net/mhm7hbsb/1/