誰かが以前にこれに遭遇したことがあるのか、それとも私のコードの何が問題なのか教えてくれるのだろうかと思っていました。
mouseenterで、テキストを広げて変更するボタンがあります。マウスを離れると、元の状態に戻ります。
ここにjsfiddleを設定しました。これは関連するコードです(省略形):
var labelChanger = function (off, on) {
$el.off('mouseenter').off('mouseleave');
$el.mouseenter(function (e) {
e.stopPropagation();
changeContent(on);
$(this).animate({'width': '70%'}, 50);
}).mouseleave(function (e) {
e.stopPropagation();
changeContent(off);
$(this).animate({'width': '50%'}, 50);
});
};
正常に動作しますが、マウスを上または下からボックスに入れると、マウスを動かすとmouseenterイベントがトリガーされる状態になるという奇妙なことが起こります(これは約25%の確率で発生します)。 )要素「ちらつき」によって発火しているのがわかります。その下にある種のログを追加しました。
ただし、マウスを横から入れると安定し、期待通りに動作します。
なぜこれなのか誰か知っていますか?私は困惑しています。