2013-04-07 3 views
3

Я строю карту d3 данных: http://datamaps.github.io/Как мы можем создать событие onclick для карты данных d3?

Когда я нажимаю на страну, я хочу границу, чтобы изменить цвет. Как назначить событие onclick пути d3 с помощью datamaps? Кажется, что пути svg не имеют идентификатора CSS, а также любого идентификационного крючка.

+0

Если вы используете этот проект github, возможно, лучше отправить вопрос, чтобы добавить опцию «выделить по щелчку». Там уже выделяется наведение, чтобы вы могли разветвить проект и добавить событие mousedown здесь. Https://github.com/markmarkoh/datamaps/blob/master/public/js/app/views/Map.js#L88 – minikomi

ответ

2

Вы можете использовать JQuery "сделано: функция" и указать на ("нажмите"), как показано ниже:

done: function(datamap) { 
     datamap.svg.selectAll('.datamaps-subunit').on('click', function(geography) { 
      alert(geography.properties.name); 
     }); 
    } 

См https://github.com/markmarkoh/datamaps для дальнейших деталей.

2

Вам понадобится обратный звонок done, а также функция updateChoropleth. Например, чтобы превратить каждую страну в черный цвет, вы бы сделали:

done: function(datamap) { 
    datamap.svg.selectAll('.datamaps-subunit').on('click', function(geography) { 
     var m = {}; 
     m[geography.id] = '#000000'; 
     datamap.updateChoropleth(m); 
    }); 
} 
Смежные вопросы