2017-12-11 2 views
1

ホバー上のナビゲーションにクラスを追加しました.show-dropdown、ナビゲーション開始時にスクロールを無効にしたいと思います。ホバー上の要素に追加されるクラスを検出/聴取する方法は?

突然変異観察者はこれを行う最善の方法ですか、それとも過剰ですか?私はホバーが開始されたとき、残念ながら、これはと呼ばれることは決してありません

if($('.show-dropdown').length > 0) { 
    window.disableOnScroll = 1; 
} 

のような単純な何かをしたい

は、私はそれが唯一のオンロードクラスにチェックしているので、それがあると信じています。

突然変異観察者は私の最善の賭けですか?または、クラスではなくDOMにnode/elementが追加されているのを聞くためにのみ使用する必要がありますか?

+0

'nav'の意味は何ですか? – brk

+0

'mouseover'を使わない理由は何ですか? – nipuna777

+0

@brkナビにドロップダウンがあり、それは私が参照しているものです – h0bb5

答えて

1

mouseoverイベントにサブスクライブすると、スクロールを無効にすることができます。

スクロールを再度有効にするには、mouseleaveイベントも聞く必要があります。これらのイベントが発生すると、スクロールを再度有効にします。

イベントデリゲータはこれに適しているため、すべてのイベントを1か所で処理する必要はありません。

+0

感謝nipuna、私はmouseover/mouseleaveの組み合わせで働いています:) イベント委任者とはどういう意味ですか? – h0bb5

+0

問題ありません。これは、複数の要素のイベントを結合するために使用されるメソッドです(複数の.show-dropdownがある場合は、この例では)。 1つしか持っていなければ、それらは必要ありません。 – nipuna777

関連する問題