Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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
Javascript jquerymouseleave多次触发_Javascript_Jquery_Svg - Fatal编程技术网

Javascript jquerymouseleave多次触发

Javascript jquerymouseleave多次触发,javascript,jquery,svg,Javascript,Jquery,Svg,我有一个svg容器,其中包含多个子元素,我将jQuery事件处理程序附加到(.mouseleave)。它可以工作,但每次被激发,在接下来的执行中它会被激发多次。。。因此,第一次触发mouseleave时,它会按预期触发一次,但第二次触发两次,第三次触发三次,依此类推。我不知道是什么原因造成的,也无法通过谷歌搜索找到任何东西。以下是屏幕截图和代码: 我敢肯定,您的问题是由于在dom元素上附加了多个事件侦听器造成的。尝试在$('#svgArcs').mouseleave(函数(e){行之前添加此项:

我有一个svg容器,其中包含多个子元素,我将jQuery事件处理程序附加到(.mouseleave)。它可以工作,但每次被激发,在接下来的执行中它会被激发多次。。。因此,第一次触发mouseleave时,它会按预期触发一次,但第二次触发两次,第三次触发三次,依此类推。我不知道是什么原因造成的,也无法通过谷歌搜索找到任何东西。以下是屏幕截图和代码:


我敢肯定,您的问题是由于在dom元素上附加了多个事件侦听器造成的。尝试在
$('#svgArcs').mouseleave(函数(e){
行之前添加此项:

$('#svgArcs').off('mouseleave')

这应该可以解决问题。

我很确定您的问题是由于在dom元素中附加了多个事件侦听器造成的。请尝试在
$('#svgArcs')之前添加此项。mouseleave(函数(e){
行:

$('#svgArcs').off('mouseleave')

这应该可以解决问题。

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整且可验证的示例。很可能您正在使用ev附加其他事件侦听器My onmouseleave。我建议分离任何以前的侦听器,例如,当您将鼠标移到SVG元素上时,或者就在mouseleave事件侦听器声明之前。我认为这非常清楚。问这个问题的目的是看看是否有人以前遇到过这个问题,并且能够指出我犯的一个简单错误或者告诉我,这个函数有一个已知但模糊的bug,不容易通过谷歌找到。如果我花时间编写“重现问题所需的最短代码”,我可能会自己解决它(我可能不得不这么做),但如果可能的话,我显然更愿意走更快的路线。这对我来说很清楚!Post不值得否决票…除了缺少可复制的代码;)不是真正的答案,但@JonathanBrooks,answer确实可以解决您的问题,您的代码似乎很奇怪。您在d3“mouseout”上创建了一个jquery“mouseleave”事件处理程序。看起来您这样做是为了创建一个闭包,将d3“this”留在作用域中,但不使用它。因此,1.)为什么要使用奇怪的闭包包装?2.)为什么要动态创建事件处理程序?3.)为什么要混合使用jquery和d3?寻求调试帮助的问题(“为什么这段代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整且可验证的示例。很可能您正在使用ev附加其他事件侦听器My onmouseleave。我建议分离任何以前的侦听器,例如,当您将鼠标移到SVG元素上时,或者就在mouseleave事件侦听器声明之前。我认为这非常清楚。问这个问题的目的是看看是否有人以前遇到过这个问题,并且能够指出我犯的一个简单错误或者告诉我,这个函数有一个已知但模糊的bug,不容易通过谷歌找到。如果我花时间编写“重现问题所需的最短代码”,我可能会自己解决它(我可能不得不这么做),但如果可能的话,我显然更愿意走更快的路线。这对我来说很清楚!Post不值得否决票…除了缺少可复制的代码;)不是真正的答案,但@JonathanBrooks,answer确实可以解决您的问题,您的代码似乎很奇怪。您在d3“mouseout”上创建了一个jquery“mouseleave”事件处理程序.看起来你这样做是为了创建一个闭包,让d3“this”在作用域中,但不要使用它。因此,1.)为什么要使用奇怪的闭包包装?2.)为什么要动态创建事件处理程序?以及3.)为什么要混合使用jquery和d3?是的,这就解决了它。谢谢!不知道可以多次附加同一事件。太好了,很高兴提供帮助!如果可以,请不要忘记接受答案:)是的,解决了它。谢谢!不知道您可以多次附加同一事件。太好了,很高兴提供帮助!如果可以,请不要忘记接受答案:)