Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 SVG上的.mouseover()事件的行为异常_Javascript_Jquery_Svg - Fatal编程技术网

Javascript SVG上的.mouseover()事件的行为异常

Javascript SVG上的.mouseover()事件的行为异常,javascript,jquery,svg,Javascript,Jquery,Svg,链接到JSFIDLE: 基本上,svg会不断更改颜色,而不会触发.mouseout事件 $(function() { $(".icon") .mouseover(function() { var colors = ["#6F216C", "#F34B0D", "#C50102", "#5DA537", "#F1D81B"]; var pick = Math.floor(Math.random()*5);

链接到JSFIDLE:

基本上,svg会不断更改颜色,而不会触发.mouseout事件

$(function() {
    $(".icon")
    .mouseover(function() {
               var colors = ["#6F216C", "#F34B0D", "#C50102", "#5DA537", "#F1D81B"];
               var pick = Math.floor(Math.random()*5);
               var color = colors[pick];
               $(this).children().css('fill',color); 
               })
    .mouseout(function() {
              $(this).children().css('fill','black');
    });
});
改为使用
.mouseenter()
.mouseleave()

小提琴:


在不访问API文档的情况下,我怀疑当鼠标移动到(而不仅仅是进入)该区域时,.mouseover会被触发。但我可能是在编造。我知道进退都是工作。

我根据格雷格·佩蒂特的建议更新了小提琴。原版:最好提及更新;当你打开它的时候,它会让人困惑,而且工作正常。是的,hover是mouseenter和mouseleave组合的别名。用你喜欢的!很高兴提供帮助。mouseover事件冒泡,与mouseenter事件相反。这可能会导致类似这样的问题,尤其是在元素方面。