当我使用Raphael.js制作新元素时,如果此元素到达空闲光标下,则不会触发悬停事件(43.0.2311.90)或Internet Explorer(11.0.8)。 Firefox(31.0,32.0.2和37.0.2)按预期工作。
我试图找到是否有办法手动触发测试,检查光标是否在元素上(当元素创建后没有新的mouseevent时),所以我可以补偿这一点。
我想我需要拉斐尔去做测试,因为形状经常是旋转而不是方形。
欢迎其他变通方法。
代码:
<!DOCTYPE html>
<html>
<head>
<style>
.board{
height: 600px;
width: 800px;
border: 1px black solid;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js"></script>
<script> g = typeof g !== "undefined" ? g : {}; </script>
</head>
<body>
<div id="board" class="board"></div>
<script>
g.board = Raphael("board",800,600);
var circle = g.board.circle(50, 40, 10);
circle.attr({"fill": "blue"});
circle.hover(function() {
this.attr({"fill": "yellow"});
this.animate({"r": 30},1000);
var circle = g.board.circle(50, 40, 10);
circle.attr({"fill": "purple"});
circle.hover(function() {
this.attr({"fill": "green"});
this.animate({"r": 25},1000);
}, function() {
circle.remove();
});
}, function() {
});
</script>
</body>
</html>
答案 0 :(得分:0)
当你停止寻找时,你会找到你想要的东西。
我似乎在寻求:Element.isPointInside(x, y)
http://raphaeljs.com/reference.html#Element.isPointInside
我用它来测试新元素是否在光标下,这样我就可以手动触发它们的悬停事件。