IE 11中的Mouseleave和MouseOut Fire两次

时间:2017-08-03 16:12:23

标签: javascript jquery internet-explorer-11

我正在尝试为我的一个div使用mouseleave函数。我附加了两个不同的小提琴,一个使用jquery,另一个使用普通的javascript。 jquery示例使用(document).on,因为div及其中的所有数据都是通过Ajax调用生成的。两个小提琴在Chrome中运行良好,但是,在Internet Explorer中打开时,警报框会触发两次。有趣的是,如果在Internet Explorer中将警报框更改为console.log(),它只会向控制台写入一次。

之前有人碰到过这个吗?当鼠标离开div时,所需的行为是警报框在Internet Explorer中触发一次。

https://jsfiddle.net/ttu1ouvz/

<div id="myTestDiv">
  <p>
     testing 
  </p>
</div>

$(document).on("mouseleave", "#myTestDiv", function() {
    alert("Your hovered over the test div");
});

https://jsfiddle.net/ttu1ouvz/4/

<!DOCTYPE html>
<html>
<body>

<div id="myTestDiv" onmouseout="mouseLeft(this)">
  <p>
     testing 
  </p>
</div>

<script>
function mouseLeft(x){
        alert("Your left the test div");
}
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我使用.hover();

解决了这个问题
$(document).hover(function(){
    alert("Your hovered over the test div");
}, function(){
    alert("Your mouse leave from the test div");
});

https://api.jquery.com/hover/ https://www.w3schools.com/jquery/event_hover.asp