2014-02-14 3 views
0

Я пытаюсь сделать дерево из http://mbostock.github.io/d3/talk/20111018/tree.htmlМогут ли ключи данных вводить, обновлять, выходить в d3js, быть списком?

Ключа в этом дереве только идентификатор, который является только целым числом.

Я хочу указать такой ключ, что вместе с идентификатором узла у меня также есть дополнительная переменная, так что когда я переключаю эту переменную, мой круг выбирается в разделе обновления.

Я попытался пропусканием список как

data(data, function() { 
    return [(d.id || d.id = ++i), d.value]; 
}) 

Я хочу, чтобы получить обновление, когда я изменить d.value к чему-то еще. До сих пор мне не повезло, плюс я не могу найти его в документации. Любая помощь?

ответ

1

Ключ для .data() является функцией. Эта функция сообщает D3, как сопоставить данные в первом аргументе с данными, связанными с существующими элементами. То есть, если ключевая функция возвращает одно и то же значение для элемента в первом аргументе .data() и данные, привязанные к существующему элементу DOM, предполагается, что элемент DOM представляет эти данные.

Если элемент данных согласован, он будет выбран в списке обновлений. Если он не сопоставлен, он будет в выборе ввода. Все существующие элементы DOM, которые не соответствуют данным, будут в выборе выхода.

Так что в вашем случае вам фактически ничего не нужно менять, потому что узел будет частью выбора обновления.

+0

ах, хорошо. Я зарегистрировал его и увидел, что он действительно входит в раздел обновления. Я думаю, проблема в том, что я сохраняю копию данных узла где-то в поле данных какого-либо другого тега, и обновление, которое не повлияет на мои оригиналы. Первоначально я думал, что это ссылка, но я думаю, что jquery делает копию, когда я делаю '$ (tag) .data (data)'. Могу ли я спросить вас, знаете ли вы, как я могу передать ссылку? –

+0

Не уверен, что вы подразумеваете под ссылкой, и JQuery не сделает такую ​​копию. Вы имеете в виду, что вы привязываете данные к различным элементам DOM, а затем обновляете подмножество элементов DOM? –

+0

Да, у меня есть json, который я использую для создания дерева. Затем я сохраняю данные для определенного узла в теге html, используя атрибут data. Затем я меняю данные в теге html (а не на json). Я хочу, чтобы это произошло в выборе обновлений, должно ли это происходить по дизайну или я делаю что-то неправильно? –

 Смежные вопросы

  • Нет связанных вопросов^_^