Reputation: 341
Here is my code:
function toggleClass(element, className){
d3.select(element).classed(className, !d3.select(element).classed(className));
}
d3.selectAll("rect").on("click", toggleClass(this, "clicked");
I cannot get it to work, it appears that passing arguments to a DOM event is bad news bears. Does anyone know a work-around for this?
Thank you
Upvotes: 7
Views: 11672
Reputation: 2930
Have you tried selection.datum()
function? This snippet might give you an idea :
d3
.select('svg')
.append('circle')
.datum({
'x':10,
'y':100,
'z':100
})
.on('click'),function(d){
//Here d = {'x':10,'y':100,'z':1000}
});
Upvotes: 1
Reputation: 341
This works:
function toggleClass(element, className){
d3.select(element).classed(className, !d3.select(element).classed(className));
}
d3.selectAll("rect").on("click", function () {
toggleClass(this, "clicked");
});
here is the working fiddle: http://jsfiddle.net/g45Ju/
thanks to jshanley
Upvotes: 11