Добавление новых узлов в компоновку с принудительным управлением

Первый вопрос о переполнении стека, так что терпите со мной! Я новичок в d3.js, но постоянно удивляюсь тому, что с ним могут делать другие ... и почти так же поражен тем, насколько мало я смог продвинуться с этим сам! Ясно, что я что-то не гроклю, поэтому надеюсь, что добрые души здесь могут показать мне свет.

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

  • Создает пустой принудительно-направленный граф в указанном элементе DOM.
  • Позволяет добавлять и удалять помеченные узлы с изображениями к этому график, определяющий связи между ними

Я взял http://bl.ocks.org/950642 в качестве отправной точки, поскольку я хочу создать именно такой макет:

enter image description here

Вот как выглядит мой код:




    
    
    
    


Каждый раз, когда я добавляю новый узел, он меняет метку для всех существующих узлов; эти кучи накладываются друг на друга, и все начинает становиться некрасивым. Я понимаю, почему это так: потому что, когда я вызываю функцию функции update () при добавлении нового узла, она выполняет node.append (...) для всего набора данных . Я не могу понять, как это сделать для только для узла, который я добавляю ... и я могу использовать только узел .enter () для создания единственного нового элемента, так что это не работает для дополнительных элементов, которые мне нужно привязать к узлу. Как я могу это исправить?

Спасибо за любые рекомендации, которые вы можете дать по любой из этих проблем!

Отредактировано, потому что я быстро исправил источник нескольких других ошибок, которые были упомянуты ранее

88
задан VividD 31 January 2014 в 15:47
поделиться