2017-03-23 3 views
0

上でホバリングされていない場合、要素は使用してオーバー推移している場合、私は、あなたがテストすることができます知っている:jQueryの「ホバー状態」 - テスト要素は、もはや

$('.foo:hover').length > 0; 

または私の場合上:

$(this).filter(':hover').length > 0; 

要素が'mouseenter'イベントをトリガする場合はどちらもtrueの値を返します。要素がもはや上に乗っていないかどうかテストしたいのですが。私が使用してみました:

!($(this).filter(':hover').length > 0;) 

など

$(this).filter(':hover').length < 0; 

をしかし、それは私に望ましい結果を与えていません。このため

Example using above code

コンテキスト私が働いているドロップダウンメニューです。

+0

mouseleaveを使用しますか? – epascarello

答えて

2

なぜ次のために聞かない:

$('.box').on('mouseleave', function() { 
    console.log($(this).filter(':hover').length > 0); 
    }); 
+0

それは完璧に働いてくれてありがとう! –

1

その他は、すでにmouseleaveを言及しています。ここでロバートの答えに非常によく似てい抜粋です:

$('.box').on('mouseenter', function() { 
    console.log($(this).filter(':hover').length > 0); 
    $(this).on('mouseleave', function() { 
    $(this).off('mouseleave'); 
    console.log('bye!'); 
    }) 
}); 

違いは、それは単に問題の元の要素に自身を懸念し、それが発射後に自分自身を殺すことです。

+0

ありがとう、あなたも答えは有効ですが、私はなぜ殺してイベントを尋ねることができますか? –

+1

ああ、具体的な理由はありません。ちょうど私が色々なためにそこに投げ捨てると思った。 – shabs

関連する問題