2013-01-17 30 views
6

d3-cloud Về sự kiện click Can nó có thể sử dụng nhấp kiện trong đám mây từ khóa của D3 và Nếu có như thế nàoCó thể sử dụng sự kiện nhấp trong đám mây thẻ của D3 và Nếu có thì làm cách nào?

<!DOCTYPE html> 
<meta charset="utf-8"> 
<script src="../lib/d3/d3.js"></script> 
<script src="../d3.layout.cloud.js"></script> 
<body> 
<script> 
    var fill = d3.scale.category20(); 
    var zz= ["Hello", "world", "normally", "you", "want", "more", "words", "than", "this"]; 
    d3.layout.cloud().size([300, 300]) 

     .words((zz).map(function(d) { 
     return {text: d, size: 10 + Math.random() * 90}; 
     })) 
     .rotate(function() { return ~~(Math.random() * 2) * 90; }) 
     .font("Impact") 
     .fontSize(function(d) { return d.size; }) 
     .on("end", draw) 
     .start(); 

    function draw(words) { 
    d3.select("body").append("svg") 
     .attr("width", 300) 
     .attr("height", 300) 
     .append("g") 
     .attr("transform", "translate(150,150)") 
     .selectAll("text") 
     .data(words) 
     .enter().append("text") 
     .style("font-size", function(d) { return d.size + "px"; }) 
     .style("font-family", "Impact") 
     .style("fill", function(d, i) { return fill(i); }) 
     .attr("text-anchor", "middle") 
     .attr("transform", function(d) { 
      return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")"; 
     }) 
     .text(function(d) { return d.text; }); 
    } 
</script> 

(Tôi muốn "Hello", "Thế giới", "bình thường", "bạn" , "muốn", "nhiều hơn", "chữ", "hơn", "này" lời được nhấp)

+0

Câu trả lời cho câu hỏi của bạn gần như chắc chắn là có, nhưng không có bất kỳ lời giải thích nào về ý nghĩa của bạn bằng "đám mây từ khóa" (ví dụ: chúng tôi sẽ không thể cung cấp thêm chi tiết cho bạn. –

Trả lời

5

Chỉ cần thêm những điều sau đây vào cuối kịch bản của bạn:

... 
.text(function(d) { return d.text; }) 
.on("click", function(d) { 
    alert(d.text); 
    }); 
+0

Tôi quan tâm đến việc sử dụng d3.js cho bản đồ cụm. Có thể đính kèm hoặc lồng các thẻ neo trong các nút để làm cho chúng có thể nhấp được không hoặc tôi có sử dụng các sự kiện nhấp chuột để xử lý chúng không? – SCS

2

bạn có thể ràng buộc sự kiện với .on

Tôi sẽ chỉ cho bạn cách mở rộng hoặc giảm kích thước thẻ khi di chuột, và để đăng nhập khi nhấp vào một thẻ (tôi đang sử dụng tập lệnh cà phê)

.on("mouseover", -> 
    d3.select(this).style("font-size", (d) -> 
    d.size + 10 +"px" 
) 
.on("mouseout", -> 
    d3.select(this).style("font-size", (d) -> 
    d.size - 10 +"px" 
) 
.on("mousedown", -> 
    console.log(this) 
Các vấn đề liên quan