Когда пользователь нажимает на legend
, я прячусь и показываю path
. оно работает. Но я хотел бы сохранить legend
полупрозрачным, когда был скрыт path
.d3js - Как использовать ключевое слово `this` или что является альтернативой?
для этого, я пытаюсь добавить стиль к legend
, используя ключевое слово this
, но оно не работает.
Каков правильный способ сделать это? она мой код:
legends.on('click', function(d, i) {
var path = d3.select("#" + d.name);
var visibility = path.style('opacity');
path.style("opacity", visibility == 1 ? 0 : 1);
if (!visibility) {
d3.select(this).style('opacity', 0.5);//not working!
this.style('opacity', 0.5);//not working!
}
});
обновление
попробовал этот способ еще не работает:
legends.forEach(function(group) {
var legend = group;
legend.on('click', function(d, i) { //throws error
var path = d3.select("#" + d.name);
var visibility = path.style('opacity');
path.style("opacity", visibility == 1 ? 0 : 1);
console.log(legend);
});
})
обновление
Не могли бы вы опубликовать JSFiddle/JSBin/... показывая вопрос? –
это не так просто воспроизвести в скрипке, так как сценарий требует нескольких иждивенцев. – 3gwebtrain
Не могли бы вы вывести 'd' на консоль и проверить связанные данные? –