【问题标题】:jquery .Hover is being called each time mouse is moved每次移动鼠标时都会调用jquery .Hover
【发布时间】:2012-08-14 12:50:35
【问题描述】:

我感觉这是由我的函数设置方式引起的,但是每次将鼠标移到元素上时,都会多次调用悬停事件(我只希望在鼠标移动时调用该事件悬停在元素上,当鼠标离开元素时(因此不再悬停在元素上)。

代码如下:

$(document).ready(function(){

$('#about-us-facebook-default').hover(
     function(){
     $(this).css({'display':'none'});
     $('#about-us-facebook-hover').css({'display':'block'});
},
function(){
     $(this).stop(true,true).css({'display':'block'});
     $('#about-us-facebook-hover').css({'display':'none'});

}
);

});

布局:

<div class="about-contact-button">
<a href="http://www.facebook.com/BlackTiePhotographers" id="about-us-facebook-hover" >
<img src="http://blacktiephotographers.com/wp-content/uploads/2012/03/facebook-hover.png" alt="" title="Connect with us on Facebook" width="30" height="30" class="alignnone size-full wp-image-2267" /></a>
<a href="http://www.facebook.com/BlackTiePhotographers" id="about-us-facebook-default">
<img src="http://blacktiephotographers.com/wp-content/uploads/2012/03/facebook.png" alt="Join Black Tie Photographers on Facebook" title="Connect with us on Facebook" width="30" height="30" class="alignnone size-full wp-image-2266" /></a>
<a href="http://www.facebook.com/BlackTiePhotographers">Join on Facebook</a>
</div>

【问题讨论】:

    标签: jquery hover mouseover


    【解决方案1】:

    您在鼠标输入方法中隐藏了元素,这会导致鼠标再次离开元素,这反过来又会导致元素再次显示。这会重复,导致您观察到的行为。

    您可能希望将处理程序附加到外部 div 并处理那里的可见性。

    【讨论】:

      【解决方案2】:

      试试这个:

      $(document).ready(function(){
          $('#about-us-facebook-default').mouseover(function(){
               $(this).css({'display':'none'});
               $('#about-us-facebook-hover').css({'display':'inline-block'});          
          });
          $('#about-us-facebook-hover').mouseout(function(){
              $('#about-us-facebook-default').stop(true,true).css({'display':'inline-block'});
              $(this).css({'display':'none'});
          });
      });
      

      但如果我能给你一个建议,你必须在 css 中这样做,它很简单而且相当精简。

      here你可以找到两个解决方案。

      【讨论】:

      • 最后,我不鼓励您使用 javascript 的原因之一,如果您的指针在图像上移动得太快,则无法捕获事件 mouseout。我用 mouseleave 和 mouseenter 测试,结果差不多。
      猜你喜欢
      • 1970-01-01
      • 2016-11-29
      • 2020-03-28
      • 1970-01-01
      • 2014-07-03
      • 2023-03-24
      • 1970-01-01
      • 2014-01-20
      • 2015-11-25
      相关资源
      最近更新 更多