使用 Javascript 在 SVG 路径上设置指针事件

Setting pointer-events on an SVG-path using Javascript

我正在使用 JavaScript 函数来启用和禁用 pointer-events 单击。 <svg><main> 元素的子元素的子元素。

我的第一次尝试是:

let el = jQuery( "main" );
el.css({ "pointer-events": "none" });

这应该有效,因为 pointer-events 属性 是继承的。确实如此。除我的 svg 中的 path 外,所有元素都禁用指针事件。 然后,在谷歌搜索了一段时间后,我发现 svg 中的 pointer-events 是一个元素的属性。

所以我尝试了:

let el = jQuery( "main" );
console.log( el.find( "path" ).attr( "pointer-events" ) ); // which returns: undefined

el.css({ "pointer-events": "none" });
el.find( "path" ).attr( "pointer-events", "none" );
console.log( el.find( "path" ).attr( "pointer-events" ) ); // which returns: none

属性已设置,但它不起作用。该路径仍然响应 hover- 和 click-事件。

现在我卡住了,因为我不明白这个。

这是个很愚蠢的问题。由于代码中其他地方的错误,它没有工作。

虽然显然 svg 没有继承 pointer-events-属性。但 el.find( "path" ).css( "pointer-events": "none" ); 完美运行。

@Turnip 的评论非常正确。如果您真的需要帮助,您想要 post 所有相关代码。

我希望这对以后的人有所帮助。