从 Internet Explorer 中的 SVG 元素传播的 jQuery 事件

发布于 2024-10-06 16:13:15 字数 277 浏览 7 评论 0原文

当动态创建的 SVG 元素(例如由 raphael.js 创建的元素)上触发事件时,是否有一个好方法可以解决 IE7 产生“错误:失败”的问题?

我认为当 jQuery 查看我的实时处理程序以检查 SVG 元素是否与我指定的任何实时选择器匹配时,会生成“错误:失败”...现在我手动绑定调用

e.stopPropagation();

每个事件的 函数(mouseenter、mouseleave、click 等)在我的 raphael 制作的 SVG 上。

Is there a good way to get around IE7 producing "Error: Failed" when events are triggered on dynamically created SVG elements (such as those created by raphael.js)?

I think the "Error: Failed" are being produced when jQuery looks through my live handlers to check and see if the SVG element matches any of the live selectors I've specified... for now I manually bind functions that call

e.stopPropagation();

for every event (mouseenter, mouseleave, click, etc.) on my SVGs produced by raphael.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花开浅夏 2024-10-13 16:13:15

我找不到一个好的方法来防止这个 jQuery 问题。

所以我最终要做的是捕获 Raphael.js 中的事件并调用 e.stopPropagation();然后我使用IE的fireEvent在VML/SVG元素的父元素上再次启动该事件。有点破解,但目前有效。

I couldn't find a good way to prevent this jQuery issue.

So what I ened up doing was capturing the events in Raphael.js and calling e.stopPropagation(); then I used IE's fireEvent to start the event again on the parent element of the VML/SVG element. A bit of a hack, but it works for now.

メ斷腸人バ 2024-10-13 16:13:15

我发现使用 Brandon Aaron 的“livequery”插件代替 jQuery 的本机“live”方法来实现与“change”事件的任何实时绑定,解决了这个问题。

请参阅:

hakoniemi

jQuery 错误

I found that using Brandon Aaron's "livequery" plugin in place of jQuery's native "live" method for any live bindings to the "change" event solved this problem.

See:

hakoniemi

jQuery Bug

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文