2
<script>
    $(function(){
        $("a.load").click(function (e) { 
            e.preventDefault();
            $("#main").load($(this).attr("href"));
            // alert("#"+($(this).attr("id")));
            $("."+($(this).attr("class"))).css('border-bottom', 'solid 1px black');
            $("."+($(this).attr("class"))).css('background-color', '#F5F5F5');
            $("#"+($(this).attr("id"))).css('border-bottom', 'solid 2px white');
            $("#"+($(this).attr("id"))).css('background-color', 'white');

        });
    });
</script>

この関数を呼び出した後、クラスの :hover プロパティが機能しなくなるという事実にもかかわらず、上記の関数は期待どおりに機能します。したがって、jQuery の CSS メソッドが :hover プロパティをオーバーライドしているようです。これに対する回避策はありますか?

関数の最後に追加してみました:

$("."+($(this).attr("class"))+":hover").css('border-bottom', 'solid 2px white');

しかし、それは役に立ちません。

4

2 に答える 2

4

私は !important タグを発見しましたが、それは仕事をしました! もうオーバーライドする必要はありません。

border-bottom-color: white !important;
border-bottom-width: 2px !important;
background-color: white !important;
于 2013-05-26T19:53:52.443 に答える
3

jQuery は CSS を処理するためのものではありません。疑似セレクターは DOM には存在しません。

代わりに、css を抽出し、jQuery でクラスを切り替えます ( addClass/ removeClass/ toggleClass)

于 2013-05-26T19:51:37.617 に答える