2016-10-24 2 views
0

Ich habe den folgenden Code in einem D3 Projekt:auf Click-Ereignisse scheinbar nicht über das ganze Element

function addSquare() { 

    //Create SVG element 
    var SQsvg = d3.select("#square") 
    .append("svg") 
    .attr({ 
     "width": 70, 
     "height": 20, 
     id: "squaresArea" 
    }) 
    .on("click", resetRefresh); 


    SQsvg.append("text") 
    .text("Refresh") 
    .attr({ 
     x: 15, //margin.left, 
     y: 15, 
     "font-family": "sans-serif", 
     "font-size": "14px", 
     "text-decoration": "underline", 
     fill: "blue" 
    }) 
    .on("click", resetRefresh); 

    function resetRefresh() { 
    console.log("hello") 
     //update bar chart when user selects a square 
    dsPieChart(initialMeasure, pieDataCSV); 
    TOPbarChartUpdate("N", initialMeasure, "lightgrey",false); 
    } 

} 

Wenn ich meine Cursor auf den Text Aktualisieren Sie die Interaktivität zu bewegen scheint nicht das ganze Wort zu überspannen - warum ist das? und wie ändere ich das oben genannte so, dass der gesamte Text das Ereignis auslöst?

Ein anschauliches Beispiel des gesamten Projekts ist hier: http://plnkr.co/edit/w9lBwZhoHqQbmNUjihQv?p=preview

Antwort

1

Ich denke, die aufgrund der Behälter das Kreisdiagramm in ist ontop der Schaltfläche Aktualisieren ist. Ich habe auf die Schaltfläche Aktualisieren, um den Körper angehängt, und schien das Problem zu lösen:

d3.select('body').append('svg').append("text") 
    .text("Refresh") 
    .attr({ 
     x: 15, //margin.left, 
     y: 15, 
     "font-family": "sans-serif", 
     "font-size": "14px", 
     "text-decoration": "underline", 
     fill: "blue" 
    }) 
    .on("click", resetRefresh); 

http://plnkr.co/edit/rc78OaAZbOVPjPznGKok?p=preview

+0

Dies war nur um herauszufinden, was das Problem war. Ich würde die Reihenfolge ändern, in der Sie das Kreisdiagramm und die Aktualisierungsschaltfläche an das SVG anfügen. – thatOneGuy

+0

ok - momentan ist die Refresh-Schaltfläche in einem separaten div - muss sie vielleicht in die obere rechte Ecke des divs verschoben werden, das vom Kuchen verwendet wird? – whytheq

+0

hängt davon ab, ob es in SVG sein soll. Ich empfehle nur eine einfache HTML-Taste dafür, das ist der einfachste Weg. – thatOneGuy

Verwandte Themen