2

jsFiddleのライブ例があります

「スタックされた」要素の1つにマウスを移動します-ホバーされたアイテムは色が濃くなりますアイテムをクリックします-スタックの一番上に移動します。

IE8では、まだ「ホバー」(暗い背景)になっていますが、マウスカーソルの下にはありません。

4

3 に答える 3

3

元の要素を移動する代わりに、要素のクローンを作成してみてください。オリジナルでは、要素をDOM内の現在の状態にし、新しい位置に配置しています。これが発生した場合、IEは要素を再描画していないか、もう一度マウスオーバーするまで状態をリセットしていないようです。

クローンを作成することで、IEに新しい要素を作成させることになり、ページ上になかったため、ホバー状態を適用できなくなります。次に、コンテナの前に追加し、元のファイルを削除するだけで完了です。

$(".elem").on('click', function(){
    $(this).clone(true).prependTo('#container');
    $(this).remove();
});​

参照: http: //jsfiddle.net/y8PCc/1/

ここでの彼の答えからのDmitryの功績:Internet Explorer:ターゲットDOM要素がDOM内で移動されると、ホバー状態がスティッキーになります

于 2012-06-08T14:34:36.643 に答える
1

疑似クラスの代わりにクラスを使用して、移動後に削除することができます

$(".elem")
    .hover(function(e){
        $(this).toggleClass("elem-hover", e.type == "mouseenter");
    })
    .click(function(){
        $(".elem:first").before(this)                    
        $(this).removeClass("elem-hover")
    })

デモhttp://jsfiddle.net/ByEzV/4/

于 2012-06-09T06:49:43.390 に答える
0

jQueryをこれに変更すると、ie8で機能するはずです。

$(".elem").click(function(){
$(".elem:first").before(this);
$(this).css('background', '#fff').css('color', '#000');
})​
于 2012-06-08T14:33:36.773 に答える