【问题标题】:How can insert order of an enter selection be controlled?如何控制输入选择的插入顺序?
【发布时间】:2012-10-11 17:11:43
【问题描述】:

我有一个带有两个元素的输入选择,我想将它们添加到 svg 容器中,以便保持两个元素的顺序。我已经尝试使用像这样的 :first-child 选择器使用插入

var newlayers = layer.enter();
newlayers.insert("g",":first-child")

由于使用 :first-child 选择器,输入选择中的第二个元素最终成为插入后 svg 容器中的第一个元素。如何避免这种行为?

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    好的,在以这种方式创建插入选择后,我能够使用 .sort 重新排序元素:

    var newlayers = layer.enter();
    newlayers.insert("g",":first-child")
    .sort(function(a,b){ return b-a; });
    

    这使数据的顺序保持不变,而仅对 DOM 中插入的元素重新排序。我走上了重新排序 enter() 本身返回的数据的路线,这带来了一系列全新的其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多