2014-12-09 3 views
0

Я добавление изображение блесны на значок на конкретном событии:Следите приложенном изображения в D3js

if (d.state == "0") { 
    d3.select(this).append("svg:image") 
    .attr("class", "circle") 
    .attr("id", this.name) 
    .attr("xlink:href", "Images/icons/ajax-loader.gif") 
    .attr("x", "+16px") 
    .attr("y", "-16px") 
    .attr("width", "20px") 
    .attr("height", "20px"); 
} else if (d.state == "1") { 
    d3.select("#" + d.name) 
    .remove(); 
} 

При изменении состояния, я хочу удалить/скрыть это спиннера изображение. Как мне его отслеживать? Есть ли способ связать идентификатор с ним, чтобы я мог использовать его позже, чтобы удалить его?

Я пробовал с идентификаторами (как показано в фрагменте кода), но он не работает.

ответ

0

Несколько способов (зависит от более широкого контекста того, как вы его используете):

Вы можете присвоить его переменной:

spinner = d3.selet(this).append("svg:image") 
    .attr('class', "circle") 
    ... 

, а затем удалить его с spinner.remove(). var spinner должен быть объявлен где-то там, где он доступен для всех мест вашего кода, где вы его используете (т. Е. В верхней части файла).


Вы можете присвоить ему идентификатор, с помощью .attr("id", "my_image") и вы можете выбрать его на основе, что идентификатор позже с помощью d3.select("#my_image"). Или вы можете выбрать его по классу d3.select('circle').

Идентификаторы не будут работать, если у вас более одного изображения с одним и тем же идентификатором, и с классом, если их несколько, все они будут выбраны, если только вы не указали d3.select(...) родительский элемент одного из них.

+0

Пожалуйста, проверьте вопрос об обновлении. – Natasha

+0

@ Наташа, почему вы используете 'this.name' в одном месте и' d.name' в другом? Они должны быть одинаковыми. – meetamit

+0

Да, просто пытался что-то сделать, так что так получилось. Любые идеи по решению? – Natasha