jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – mouseleave和mouseout都经常触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
相对较新的编码器在这里.我正在使用D3和 jquery来创建一个在光标移过svg圆圈时触发的跳跃效果.

圆的示例如下所示:

<circle cx="20.61855670103093" cy="730" class="top1000 Ragtime albumDot" id="0" r="5.5"></circle>

影响圈子的CSS是这样的:

.albumDot {
  fill: #fff;
  z-index: 250;
  cursor: pointer; /*-- Does not work 90% of the time --*/
  stroke: #111;
  stroke-width: 3px;
  opacity: 1;
}

处理悬停的代码如下所示:

$('.albumDot').mouseenter(function() {
   console.log("mouSEOver"+ this.id); 
   hopup(jazzdata[this.id]);      
});
$(".albumDot").mouseleave( function() {
   console.log("mouSEOut"); 
   d3.select("#hopup").attr("style","display:none; opacity:0;");
}

悬停功能工作得很好,但是当我将鼠标移动到任何这些svg形状上时,mouseenter和mouseleave会一遍又一遍地触发.我不会离开它的形状,只是在它内部移动.

以前,我一直在使用鼠标悬停和鼠标移动,但我遇到了同样的问题.圆圈没有子元素.

这种情况发生在Mac上的Safari和Chrome中.

编辑:这是dropBox上的一个实例.

http://dl.dropbox.com/u/2272508/jazz_history/index.html

解决方法

在DOM中,您有一个元素< svg id =“HopupTriangle”>,它似乎没有被使用.一旦跳跃出现,该元素就会出现在点的顶部,并且它会从鼠标中窃取焦点.只需给它显示:none修复问题.所以,如果你不需要它,摆脱它.

如果你确实需要它 – 我猜你打算在其中加一个箭头 – 你需要确保它永远不会重叠点.首先给这个元素一个背景颜色:#f00这样你就可以清楚地看到它的位置,然后将它的高度调整到一个位置.

最后,如果此元素必须与点重叠,则向其添加一个CSS属性pointer-events:none,这将导致浏览器忽略其鼠标事件.不幸的是,这个属性在IE中不起作用,而AFAIK没有针对这个问题的简单解决方法 – 除了通过总是隐藏IE浏览器的这个元素而优雅地降级.

大佬总结

以上是大佬教程为你收集整理的jquery – mouseleave和mouseout都经常触发全部内容,希望文章能够帮你解决jquery – mouseleave和mouseout都经常触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: