0

HTML テーブルがあり、jQuery と CSS を使用してホバー ハイライト機能を提供しています。私のホバーイベントは以下のようなものです:

$('#' + element.id + ' tr:not(:first,[class="summary_row"])').die('mouseover mouseout').live('mouseover mouseout', function (event) {
            if (event.type == 'mouseover') {
                // do something on mouseover
                $(this).addClass("table_row_hover");
            } else {
                // do something on mouseout
                $(this).removeClass("table_row_hover");
            }
});

マウスがテーブルの上に出たときに、対応するテーブルの行に CSS クラスを追加したり削除したりするだけです。私の CSS クラス (table_row_hover) は単純で、背景色と前色のみが含まれています。

.table_row_hover
{
    background-color: #660033;
    color: #FFFFFF;
}

テーブル div の下に、テーブルのページネーション機能を提供するページャーを含む別の div があります。テーブルの行にカーソルを合わせると、このページャーの div が下に移動します。ホバリングするたびに、さらにシフトします。これは、Internet Explorer でのみ発生し、テーブル div に水平スクロール バーが表示されている場合にのみ発生します (テーブル div の属性は、overflow: auto、overflow-y: hidden、-ms-overflow-y: hidden;)。

何か案は?

ありがとう。

4

2 に答える 2

0

これは Internet Explorer の既知のバグです。Internet Explorer の公開へのリンクが見つかりません。バグは、要素に水平スクロールバーがある場合、addClass/removeClass でその高さが増加することです。Internet Explorer 10 で解決されたように見えるため、Microsoft も明らかにこの問題を認識していました。

于 2012-10-15T11:31:10.430 に答える
0

live()関数は非推奨なので使用しないでください。

$('#' + element.id + ' tr:not(:first,[class="summary_row"])').die('mouseover mouseout').on('mouseover mouseout', function (event) {
$(this).toggleClass("table_row_hover");

})
于 2012-10-15T11:32:24.947 に答える