여기에 종료 DOM 텍스트 내 코드입니다 내가 클릭 할 때 제대로 SVG 텍스트 요소를 제거 할 수없는 오전D3.js - <a href="http://jsfiddle.net/kiniadit/dsmxtonL/" rel="nofollow">http://jsfiddle.net/kiniadit/dsmxtonL/</a></p> <p>특정 코드 - - 잘못
var labels = svg.selectAll("text").data(dataset)
//Enter…
labels.enter()
.append("text")
.text(function(d) {
return d;
})
.attr("text-anchor", "middle")
.attr("x", w)
.attr("y", function(d) {
return h - yScale(d) + 14;
})
.attr("font-family", "sans-serif")
.attr("font-size", "11px")
.attr("fill", "black");
//Update…
labels
.attr("x", function(d, i) {
return xScale(i) + xScale.rangeBand()/2;
});
//Exit…
labels.exit()
.remove();
은 "데이터 값을 제거" 절. 다른 DOM 요소 (svg rects)는 원래대로 종료되지만 svg 텍스트 요소는 이상한 방식으로 삭제됩니다. 첫 번째 데이터 값 대신에 마지막 데이터 값이 제거됩니다.
이 코드는 키 - 값 객체 대신 일반 배열을 사용한다는 점을 제외하면 Scott Murray의 저서 http://examples.oreilly.com/0636920026938/chapter_09/29_dynamic_labels.html과 거의 똑같은 사본입니다.
제가 빠진 것이 있으면 알려주세요. 감사!
// Create bars
svg.selectAll("rect").data(dataset, key)
당신은 아주 쉽게 키를 생성 할 수 있습니다 : 예에서이 데이터를 조인 인용
기본적으로'.data()'는 데이터의 각 요소를 선택 항목의 각 요소와 색인으로 일치 시키려고 시도합니다. 따라서 선택 항목에있는 것과 동일한 수의 데이터 요소가있는 경우 '입력'또는 '종료'선택 항목이 생성되지 않습니다. – Wex
알 것. 그래서 저자가 키를 사용하는 이유입니다. 명확히 해줘서 고마워. – user3588841