Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Simulate click event on an svg group

I have created a group using Snap.svg.

shape = paper.rect(225, 50, 100, 50, 10, 10);
text = paper.text(253,82, "text")
myGroup = paper.g(shape, text);
myGroup.click(toggleSelection);

When I actually click the group with my mouse the toggleSelection function is executed. I am unable to figure out how to simulate a click. I've tried myGroup.click() myGroup.events.click() etc.

There doesn't seem to be a built in method to Snap so standard JS is welcome!

like image 871
Phil Avatar asked Jan 21 '15 22:01

Phil


1 Answers

var event = document.createEvent("SVGEvents");
event.initEvent("click",true,true);
myGroup.dispatchEvent(event);

This will fire an event that you assigned with .on("click") earlier. This is nicer than manually creating a mouse event with Xs and Ys, as that's difficult and is probably fraught with peril given that your objects overlap each other at times.

like image 124
MaxZoom Avatar answered Oct 14 '22 16:10

MaxZoom