从 Internet Explorer 中的 SVG 元素传播的 jQuery 事件
当动态创建的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找不到一个好的方法来防止这个 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.
我发现使用 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