Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mouseenter/mouseleave事件未使用jQuery.on为SVG元素触发_Jquery_Svg_Internet Explorer 9_Raphael_Mouseevent - Fatal编程技术网

mouseenter/mouseleave事件未使用jQuery.on为SVG元素触发

mouseenter/mouseleave事件未使用jQuery.on为SVG元素触发,jquery,svg,internet-explorer-9,raphael,mouseevent,Jquery,Svg,Internet Explorer 9,Raphael,Mouseevent,看看这个 将jQuery与SVG(Raphael 2.0)结合使用时,mouseenter/mouseleave似乎没有正确启动。我知道开箱即用的SVG jQuery与SVG不是100%兼容的,但是,据我所知,它似乎只影响IE9 奇怪的是,如果您快速地在svg元素上/下移动鼠标(确保这样做时鼠标正好离开HTML窗格),并返回到svg元素上,则会触发事件(但不是每次)。为了确保它不是一个关于的一般问题,我连接了click事件,每次都可以正常工作 只是想知道是否有人知道这是一个bug,甚至是一个已知

看看这个

将jQuery与SVG(Raphael 2.0)结合使用时,
mouseenter
/
mouseleave
似乎没有正确启动。我知道开箱即用的SVG jQuery与SVG不是100%兼容的,但是,据我所知,它似乎只影响IE9

奇怪的是,如果您快速地在svg元素上/下移动鼠标(确保这样做时鼠标正好离开HTML窗格),并返回到svg元素上,则会触发事件(但不是每次)。为了确保它不是一个关于
的一般问题,我连接了
click
事件,每次都可以正常工作


只是想知道是否有人知道这是一个bug,甚至是一个已知的问题?

这是1.7.2中的bug。看


如果我使用jQuery(edge),问题就会消失,所以应该在下一个预定版本(1.8)中修复。

我认为重要的是要注意,jQuery 1.8.2和android via phonegap没有使用jq mobile。我看到触摸和鼠标事件是随机选择的,没有同步。。。 这意味着触发鼠标的细微差别与点击触发的不同之处 touchStart(有时,如果当前未发送回车,则会出现鼠标指针),然后2个touchEnds。 如果您有一个touchEvent触发鼠标,则第二个触摸模式(开始、结束、结束)会发送一个mouseLeave(假设您没有通过细微的点击差异随机触发一个点击组合)

我的期望是,在这两种情况下,它们应该一起触发,除了一个(触摸事件)更多地用于多点触摸需求,或者在通过触摸界面模拟的点击事件(不知何故?…)之后,识别不会出现鼠标移动事件。 我的另一个期望是,如果我没有为鼠标事件处理或注册监听器,但我为触摸事件处理或注册监听器,反之亦然,则不同的事件将被发送或不被发送,这取决于所侦听或截获的内容(返回false?或通过默认值停止冒泡等)

无论如何,在我看来,目前你需要以随机的、未连接的、不可预测的方式处理这两种类型的事件,这对我来说意味着放弃鼠标世界中最好描述为触摸设备上的“结束”事件

基本上,我认为一次触摸不应该发送一个over/enter事件,而一次点击也应该相当于触摸,如果我在听触摸,默认应该取消所说的mouseEvents

无论如何,把这两个都寄过来,让我来整理一下,这是最有意义的。 我怀疑的困惑在于你只听了它发送的事件的一半(缺少接触)。
…祝你好运!希望这些想法能够帮助更高级别或更低级别的开发团队处理混乱。(这是浏览器级别的错吗?我想是的。)

@stefandler-“据我所知,它似乎只会影响IE9”。我避免像瘟疫一样将jQuery与SVG结合使用。这是一个雷区,充满了这样的例外。我认为你的错误与此有关(两年前未解决)。@Duopixel是的,我看到了该线程,但在我确定这是一个明确的错误而不是我正在做的事情之前,我不想发布罚单。公平地说,jQuery与SVG配合得很好。只是看起来鼠标事件有点不可预测。我只需要恢复使用Raphael即可。您可以使用addEventListener,即(我想您不需要支持传统IE,因为
$('circle')
在IE 6-8中不起作用)@Duopixel没错,我只支持最新的浏览器。我希望我的代码保持一致,所以我认为现在我将恢复使用Raphael。事实上,这是jQuery中的一个bug,不过请看我的答案。