2016-10-24 2 views
0

내가 가지고 D3 프로젝트에서 다음 코드를겉으로가 아닌 전체 요소를 통해

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); 
    } 

} 

나는 단어 전체에 걸쳐 보이지 않는 상호 작용을 새로 고침 텍스트에 내 커서를 이동하면 - 왜 이거 야? 그리고 모든 텍스트가 이벤트를 유발할 수 있도록 위의 내용을 어떻게 수정합니까?

전체 프로젝트의 라이브 예를

은 여기에 있습니다 :

답변

1

http://plnkr.co/edit/w9lBwZhoHqQbmNUjihQv?p=preview 내가 파이 차트에있는 새로 고침 버튼 ontop이있는 컨테이너를 기준으로 인해 생각합니다. 나는 몸에 새로 고침 버튼을 추가하고, 문제를 해결하기 위해 같았다 :

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

이것은 단지 문제가 무엇인지 해결하는 것이 었습니다. 원형 차트와 새로 고침 버튼을 SVG에 추가하는 순서를 변경했습니다. – thatOneGuy

+0

ok - 현재 새로 고침 버튼이 별도의 div에 있습니다. 파이에서 사용되는 div의 오른쪽 상단 모서리로 이동해야 할 수 있습니다. – whytheq

+0

은 SVG에 있는지 여부에 따라 다릅니다. 가장 쉬운 방법은 일반 HTML 버튼 만 사용하는 것이 좋습니다. – thatOneGuy

관련 문제