So i have some data binded with drag event listeners :
myNodes.enter()
.append("svg:g")
.call(d3.behavior.drag()
.on("drag", function() {
console.log(d3.event.dx, d3.event.dy);
})
);
Now I want to call this onDrag function on a certain node programmatically. I do know the same is possible with standard events by doing
aNode.on("click")() // works
aNode.on("drag")() // doesn't work
Is there any way to do so ? Thanks.
Save the callback (the one you pass into the drag handler) in a variable and then call this variable in your other context.
var dragCallback = function(){
console.log(d3.event.dx, d3.event.dy);
};
var dragBehavior = d3.behavior.drag()
.on("drag", dragCallback);
myNodes.enter()
.append("g")
.call(dragBehavior);
//Call drag method programmatically
dragCallback()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With