4

だから私はその下にjqueryでソート可能なLIを持つULを持っています。各 LI には、関連付けられた :Hover CSS スタイルがあります。問題は、LI を UL からドラッグして離したときに発生します。ホバー効果は IE9 でも適用されます (クロムは正常に動作します)。

HTML

<ul id="test">
<li>test</li>
<li>test 2</li>
</ul>​

CSS

#test li:hover{
background-color:Yellow;}​

Javascript

$("#test").sortable();​

フィドルを参照してください: http://jsfiddle.net/hBhZD/2/

私は次の SO の質問を見てきました: IE9 は :hover style on DOM change を削除しません。これは私が経験しているのと同じ問題のようですが、可能であれば、jQuery を使用してスタイルの変更を強制することは避けたいと考えています。

CSSでこれを修正する方法を知っている人はいますか?

4

2 に答える 2

2

helperドラッグ中にオブジェクトのクローンを作成するオプションを使用します。これを行うと、IE8 は一度解放されたオブジェクトを強制的に再描画し、ホバー状態をリセットします。

$("#test").sortable({
    helper: 'clone'
});
于 2012-11-14T01:27:44.067 に答える
1

私の調査と私が見つけた CSS ベースの回答の欠如に基づいて、この IE のバグは純粋な CSS では克服できないようです (誰かが別の方法で見つけた場合は、私が間違っていることを証明してください!)。これが私が使用したjQueryベースの回避策です(不思議に思っている場合に備えて):

function toggleTabHover(tabName, hoverStatus) {
    var element = $('#'+tabName);

    if (element.hasClass('selectedTab')) {
        return;
    }

    if (hoverStatus === "on") {
        element.addClass('tabHoverOn');
        element.removeClass('tabHoverOff');
    }
    else {
        element.addClass('tabHoverOff');
        element.removeClass('tabHoverOn');
    }
}

ホバーするタブの名前と、切り替えたい「オン」/「オフ」状態を渡します。selectedTab クラスは、クリックされたタブ用です (アクティブなタブにホバー効果を適用したくありません)。

于 2012-11-05T20:14:22.127 に答える