这是我的代码:
function toggleClass(element, className){
d3.select(element).classed(className, !d3.select(element).classed(className));
}
d3.selectAll("rect").on("click", toggleClass(this, "clicked");
我无法让它工作,似乎将参数传递给DOM事件是坏消息。有没有人知道这方面的解决方法?
谢谢
答案 0 :(得分:9)
这有效:
function toggleClass(element, className){
d3.select(element).classed(className, !d3.select(element).classed(className));
}
d3.selectAll("rect").on("click", function () {
toggleClass(this, "clicked");
});
这是工作小提琴:http://jsfiddle.net/g45Ju/
感谢jshanley
答案 1 :(得分:0)
您是否尝试过selection.datum()
功能?这段代码可能会给你一个想法:
d3
.select('svg')
.append('circle')
.datum({
'x':10,
'y':100,
'z':100
})
.on('click'),function(d){
//Here d = {'x':10,'y':100,'z':1000}
});