jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何删除/切换元素上的悬停类(在单击时翻译)而不必再次移动鼠标?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您单击并且不移动鼠标,您将看到按钮的颜色保持为红色!
我想要完成的是在您单击并且不移动鼠标之后它仍然移除/切换.hover类.

Example on jsFiddle

$(function() {
  var $Btn = $('.button');

  $Btn.hover(function() {
    $(this).toggleClass("hover");
  });


  $Btn.on("click",function() {
    $(this).toggleClass('active')
    $('.move').toggleClass('angle');
  });
});
.move {
  border: 1px solid #000000;
  padding: 10px;
  transition: transform .2s ease;
  /* 
        have noticed issue is in "transition" 
    */
}
.button.hover {
  color: red;
}
.angle {
  transform: translate(100px,0);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="move">
  <button class="button">on click still red?</button>
</div>

解决方法

即使单击按钮(并且容器已翻译),该元素仍保留悬停类,因为浏览器似乎没有调用悬停(或鼠标输出)直到鼠标实际移动.

解决此问题的一种方法是在按钮的单击事件处理程序中删除悬停类.但为了实现这一点,需要将hover事件处理程序的代码更改为在mouSEOver(hover-in)上专门添加类,并在mouSEOut(hover-out)上删除它.这是必需的,因为根据当前代码,即使在click事件处理程序中删除了悬停类,它也会在鼠标再次移动时切换回来(因为在那个时间点,悬停的处理程序没有看到类在元素上).

代码的更改实际上可以通过两种方式完成 – 通过使用单独的mouSEOver和mouSEOut函数(比如在我原来的小提琴中)或通过将两个单独的函数传递给悬停处理程序.当两个函数通过时,第一个函数在hover-in上调用,第二个函数在hover-out上调用.

$(function () {
  var $Btn = $('.button');

  $Btn.hover(function () {
    $(this).addClass("hover");
  },function () {
    $(this).removeClass("hover");
  }); /* first function is executed on mouSEOver,second on mouSEOut */

  $Btn.on("click",function () {
    $(this).removeClass('hover'); // remove the hover class when button is clicked
    $('.move').toggleClass('angle');
  });
});
.move {
  border:1px solid #000000;
  padding: 10px;
  transition: transform .2s ease;
  /* 
  have noticed issue is in "transition" 
  */
}
.button.hover {
  color: red;
}
.angle {
  transform: translate(100px,0);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="move">
    <button class="button">on click still red?</button>
</div>

大佬总结

以上是大佬教程为你收集整理的jquery – 如何删除/切换元素上的悬停类(在单击时翻译)而不必再次移动鼠标?全部内容,希望文章能够帮你解决jquery – 如何删除/切换元素上的悬停类(在单击时翻译)而不必再次移动鼠标?所遇到的程序开发问题。

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

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