18

可以说我有

<style>
    #container:hover{background:red}
</style>
<div id="container"><input type="submit"></div>

当我将鼠标悬停在提交上时,#container仍然是红色的。我可以用jquery删除:鼠标悬停在输入鼠标上吗?我不想改变 bg $('#container').css('backgroundColor','color'),我需要类似的东西 $('#container').removeAttr('hover')

4

7 回答 7

24

不幸的是,用 jQuery 管理 CSS 伪类是不可能的。

我建议您操作类,如下所示:

<style>
    .red:hover{background:red}
</style>

<div id="container" class="red"><input type="submit"></div>

<script>
    $("#container").removeClass("red");
</script>
于 2012-12-05T14:51:43.127 回答
6

您不能删除伪类规则,但可以使用事件绑定覆盖它们:

$("#container").on('mouseover', function () {
   $(this).css('background', 'blue');
}).on('mouseout', function () {
   $(this).css('background', whateverItIsNormally);
});
于 2012-12-05T14:53:13.843 回答
2

这可能有点复杂,当然可以使用优化,但您可以使用到目前为止发布的内容的组合:

jsFiddle:http: //jsfiddle.net/psyon001/Vcnvz/2/

<style>
    .red{background:red;}
</style>

<div id="container"><input type="submit"></div>

<script>
$('#container').on({
    'mouseenter' : function(){
        $(this).addClass('red');
    },
    'mouseleave' : function(){
        $(this).removeClass('red');
    }
});
$('#container').find('input').on({
    'mouseenter' : function(){
        $('#container').removeClass('red');
    },
    'mouseleave' : function(){
        $('#container').addClass('red');
    }
})
</script>
于 2012-12-05T15:30:14.630 回答
2

根据您的浏览器指针事件:无可能有帮助

https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

于 2014-01-14T15:03:01.783 回答
1

我们可以在 css 和 Jquery 的帮助下覆盖 CSS 悬停效果

$('div').hover(function(){ $(this).addClass('nohover');})

In CSS Add Class .nohover
.nohover {
pointer-events:none;
}
于 2018-10-08T11:37:49.307 回答
0

我应用了这个:

element.click(function(){
  element.hover(
    function(){
     element.css('background-color', '');
     element.css('color', '');
  },
    function(){
     element.css('background-color', '');
     element.css('color', '');
  });
});

它似乎可以在保留原始 CSS 的同时删除悬停属性。

于 2015-02-15T00:57:21.880 回答
0

我认为这更好

<style>
    .red:hover { background-color:red; }
</style>
<!-- by default is On-->
<div class="box red"></div>
<script>
    $('.box').click(function(){
        $(this).toggleClass('red');
    });
</script>
于 2019-04-30T11:04:53.063 回答