将事件传递到最高z索引减去jqueryui顶部画布上的一项



我正在尝试构建一个web应用程序,用户可以在其中识别用作外键的列,以连接两个表。例如,用户会看到两个表中的列列表,并从一侧的列a到另一侧的列B画一条线。

到目前为止,我对它的编码方式是使用两个jQueryUI可排序(用户拖放)列表(HTML中的无序列表)。接下来我想做的是在整个页面的前面放一个画布,每当我想连接两个单元格时,我都会在画布上画一条SVG贝塞尔曲线。

我遇到的问题是处理事件。由于画布位于顶部,因此它会捕获所有鼠标事件。我找到了一个SO答案,讨论了如果画布在其他控件后面,则附加事件侦听器并将事件传递到画布,但我的情况正好相反。我希望单击可以通过画布传递到jQuery UI控件。有没有一种简单的方法来确定哪个DOM对象应该接收点击?我找到了一个函数,它会返回z平面中最高的项目,与鼠标单击的坐标相同,但画布挡住了去路。我好像需要忽略它。

从更普遍的角度来看,我的方法可能会起作用,但是我应该混合jQueryUI和canvas之类的东西吗?

您可以使用指针事件属性使画布通过鼠标单击。pointer-events="none"应该这样做。

最新更新