В d3js tree sample я попытался перевести вызов для обновления вне функции d3.json. Когда я сделал это, я получаю:TypeError с деревом d3js
TypeError: d is undefined
Вот код (функция здесь немного отличается от ссылки на пример). Обратите внимание, что я переместил вызов для обновления вне функции d3.json. Обратите внимание, что root - это глобальная переменная.
d3.json("../data/flare.json", function(json) {
root = json;
root.x0 = height/2;
root.y0 = 0;
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
root.children.forEach(collapse);
// move this out
// update(root);
});
update(root);
function update(source) {.....
Lars Kotthoff вы можете поделиться другими способами, чтобы вызов функции работал вне callaback. Я вижу, что это работает, когда я вызываю его из элемента html, то есть в ответ на событие. Я не уверен, могу ли я создать событие из javascript – nilanjan
[Этот вопрос] (http://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript) объясняет, как это сделать. –