在一个SVG组上模拟点击事件

5
我使用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);

当我用鼠标实际点击组时,toggleSelection函数被执行。我无法弄清如何模拟点击。我尝试过myGroup.click()、myGroup.events.click()等方法。
Snap似乎没有内置的方法,因此欢迎使用标准JS!
1个回答

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

这将触发您之前使用.on("click")分配的事件。 相比手动创建带有X和Y的鼠标事件,这样更好,因为那样很困难,并且可能存在危险,因为您的对象有时会重叠。


1
谢谢!奇怪的是,除非我将它更改为myGroup.node.dispatchEvent(event),否则它在我的代码中不起作用。这只是因为我决定搜索有关Raphael.js(Snap的前身)的SO问题,并找到了这个链接:http://stackoverflow.com/questions/9855003/rapha%C3%ABl-object-simulate-click - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接