1

これは非常に奇妙な動作であり、その理由はよくわかりません。divのフォントの色を設定していますが、機能していません。色を設定した後、正しく警告するように警告しています。単に色の変化をまったく表示していません。

$("div.page").each(function() {
    if (!isNaN(parseFloat(this.id)) && isFinite(this.id) && this.id != page) {
        $(this).mouseover(function() {
            $(this).css("color", "blue");
            alert($(this).css("color"));
        });
    }
});

これが私のテストサイトへのリンクです:http://az-web.info/repository/

「2」(ページピッカーの「1」の下)にカーソルを合わせると、変更されていないことがわかりますが、正しくアラートが表示されます。

4

1 に答える 1

5

HTMLの構造を確認する必要があります。ホバーされているdivには、継承されたスタイルをオーバーライド<font>する属性を持つ要素が含まれています。次のように、その値を変更する必要があります。colorcolor

$("div.page").each(function() {
    if (!isNaN(parseFloat(this.id)) && isFinite(this.id) && this.id != page) {
        $(this).mouseover(function() {
            $(this).find("font").attr("color", "blue");
            //alert($(this).css("color"));
        });
    }
});

mouseoutホバリングしたままにしておくと、スタイルを削除するイベントも必要だと思います。この洞察のために、このようなものにクラスを使用することをお勧めします。そうすれば、クラスを追加/削除でき、保守が容易になります。今考えてみると、:hover疑似クラスセレクターを使用すると、CSSをこのようなものに完全に使用する方が簡単かもしれません。それがあなたが必要でさえあることを意味するかどうかはあなた次第<font>です。自分のやり方ですべてを行う理由がある場合は、続けてください。それ以外の場合は、メンテナンス/構造を改善するために修正することをお勧めします。

于 2012-11-27T04:18:33.040 に答える