私がやっていることは、誰かが1秒間要素に乗ったときにのみコードを実行することです。ここでjQuery - タイマが機能しないmouseleave/mouseleave
は、私が使用していたコードです:
var timer;
$(".homeLinkWrap").mouseenter(function() {
timer = setTimeout(function(){
$(this).find('.homeLinkNfo').removeClass('flipOutY').addClass('flipInY').css({opacity: '1'});
console.log('in');
}, 1000);
}).mouseleave(function() {
$(this).find('.homeLinkNfo').removeClass('flipInY').addClass('flipOutY');
console.log('out');
clearTimeout(timer);
});
最初の部分(のMouseEnter)が機能していないと、クラスを削除してから新しいものを追加しません。 2番目のもの(mouseleave)が正しく機能していて、クラスを削除して新しいクラスを追加しません。
これは、現在の要素がホバリングされている$ thisを対象としているためです。また、jQueryは$(this)が参照していることを知らないため、タイマー関数になっています。
これを解決するにはどうすればよいですか?
は完璧勤務しました。 – agon024