Разница между .text () в d3js и jQuery при использовании jQuery.dotdotdot

#jquery #d3.js

#jquery #d3.js

Вопрос:

Я боролся с использованием jquery.dotdotdot с d3js. Проблема, с которой я столкнулся, заключалась в том, что после добавления dotdotdot в текстовый объект я не смог обновить текст с помощью d3.select(...).text("new text) . Взгляните на этот плунжер.

Я обнаружил, что если я использовал jQuery для замены текста, это работало просто отлично. Мой вопрос в том, в чем разница. Почему это работает, когда сделано таким образом?

 text.select("span")
    //.text(d.data.label) <=== problem
    .each(function(d){
        $(this).text(d.data.label); <=== solution (?)
    });
  

Комментарии:

1. Я думаю, возможно, вы неправильно выбираете. Что является первым text производным отсюда? github.com/mbostock/d3/wiki/Selections

2. Это из этого … var text = d3.select(this).select("div.label-wrapper").selectAll("div.chart-label").data(pie(was), key); . Текст обновляется d3, но dotdotdot об этом не знает. Если я повторно инициализирую dotdotdot сразу после того, как d3 обновил текст, он возвращается к исходному тексту, который dotdotdot видел при его первой инициализации.

3. Возможно, взгляните на запуск события обновления dotdotdot, видимого внизу страницы, на которую вы ссылались.