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 に答える