为文本创建一个变量并将其移到外部
socket:
d3.json("india-states.json", function (json) {india.selectAll("path") .data(json.features) .enter().append("path") .attr("d", path);var stateText = india.selectAll(".text") .data(json.features) .enter() .append("text");//variable outside socketvar socket = io();socket.on('tags', function(data){ stateText.attr("fill", "black") .attr("transform", function(d) { console.log(data.message1 + "Second Time"); var centroid = path.centroid(d); return "translate(" + centroid[0] + "," + centroid[1] + ")" }) .attr("text-anchor", "middle") .attr("dy", ".35em") .style('fill', 'white') .text(function(d) { if (d.id == data.message1) { return data.message1; } }); });});如果要跟踪上一个
message1,可以在函数外部创建一个数组,并循环遍历它:
d3.json("india-states.json", function (json) {india.selectAll("path") .data(json.features) .enter().append("path") .attr("d", path);var stateText = india.selectAll(".text") .data(json.features) .enter() .append("text");var arrayStates = [];//this array will hold all the namesvar socket = io();socket.on('tags', function(data){ arrayStates.push(data.message1);//for each input, a new string stateText.attr("fill", "black") .attr("transform", function(d) { var centroid = path.centroid(d); return "translate(" + centroid[0] + "," + centroid[1] + ")" }) .attr("text-anchor", "middle") .attr("dy", ".35em") .style('fill', 'white') .text(function(d) { for(var i = 0; i < arrayStates.length; i++){ if (d.id == arrayStates[i]) { return arrayStates[i]; } } }); });});


