jsFiddleのライブ例があります
「スタックされた」要素の1つにマウスを移動します-ホバーされたアイテムは色が濃くなりますアイテムをクリックします-スタックの一番上に移動します。
IE8では、まだ「ホバー」(暗い背景)になっていますが、マウスカーソルの下にはありません。
jsFiddleのライブ例があります
「スタックされた」要素の1つにマウスを移動します-ホバーされたアイテムは色が濃くなりますアイテムをクリックします-スタックの一番上に移動します。
IE8では、まだ「ホバー」(暗い背景)になっていますが、マウスカーソルの下にはありません。
元の要素を移動する代わりに、要素のクローンを作成してみてください。オリジナルでは、要素をDOM内の現在の状態にし、新しい位置に配置しています。これが発生した場合、IEは要素を再描画していないか、もう一度マウスオーバーするまで状態をリセットしていないようです。
クローンを作成することで、IEに新しい要素を作成させることになり、ページ上になかったため、ホバー状態を適用できなくなります。次に、コンテナの前に追加し、元のファイルを削除するだけで完了です。
$(".elem").on('click', function(){
$(this).clone(true).prependTo('#container');
$(this).remove();
});
参照: http: //jsfiddle.net/y8PCc/1/
ここでの彼の答えからのDmitryの功績:Internet Explorer:ターゲットDOM要素がDOM内で移動されると、ホバー状態がスティッキーになります
疑似クラスの代わりにクラスを使用して、移動後に削除することができます
$(".elem")
.hover(function(e){
$(this).toggleClass("elem-hover", e.type == "mouseenter");
})
.click(function(){
$(".elem:first").before(this)
$(this).removeClass("elem-hover")
})
jQueryをこれに変更すると、ie8で機能するはずです。
$(".elem").click(function(){
$(".elem:first").before(this);
$(this).css('background', '#fff').css('color', '#000');
})