kartograph.js Как получить элемент по идентификатору пути?
Я использую kartograph.js, у меня есть svg из нескольких связанных областей / путей, и я хочу выделить область, по которой щелкнули, закрасив ее, а затем отобразив другую информацию о ней в другом div. У меня проблемы с удалением выделения формы, когда вы нажимаете новую форму. как я могу это сделать? Спасибо!
var previd=0;
var prevpath;
function mapLoaded(map) {
map.addLayer('mylayer', {
tooltips: function(d) {
return [d.watershedname,"area: "+d.area];
},
styles: {
stroke: '#aaa',
fill: '#f6f4f2'
},
click: function(d, path) {
// @path is a Raphael.element, do with it whatever you like
// @d holds the data attached to each path
//retrieve and set text to other div
$("#infoname").text(d.watershedname);
$("#infoarea").text(numberWithCommas(Math.floor(d.area))+" hectares");
//highlight the selected path
path.attr('fill', 'red');
//i'm trying to get the previous path by id here
//so i can remove the previous highlight
//doesn't work
prevpath =mylayer.getById(previd);
prevpath.attr('fill','blue');
//set the new id for later access
previd=path.attr('id');
}
});//end of add layer
}//end of mapLoaded
1 ответ
Решение
Я получил идентификатор, я использовал Layer.getPaths({column:value});
var templayer = map.getLayer('mylayer').getPaths({watershedname:selected});
templayer.forEach(function(entry) {
entry['svgPath'].attr('fill','#f6f4f2');
});