2017-12-11 5 views
1

호버상의 내비게이션에 클래스가 추가되었습니다 (.show-dropdown). 탐색이 시작될 때 스크롤을 비활성화하고 싶습니다.호버 (hover)에서 요소에 추가되는 클래스를 감지/수신하는 방법은 무엇입니까?

돌연변이 관찰자가이 작업을 수행하는 가장 좋은 방법입니까 아니면 잔인합니까?

나는 내가 단지 부하 클래스를 검사하기 때문에 그것을 믿고, 호버이 시작될 때 호출 결코 극복, 불행하게도

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

처럼 간단한 무언가를하고 싶다.

돌연변이 관찰자가 최선입니까? 또는 node/element이 클래스가 아닌 dom에 추가되는 것을 듣기 위해서만 사용해야합니까?

+0

'nav '의 의미는 무엇입니까? – brk

+0

'mouseover'를 사용하지 않는 이유는 무엇입니까? – nipuna777

+0

@brk 네비게이션에는 마우스가 놓여있을 때 드러난 드롭 다운이 있습니다, 그게 제가 말한 것입니다 – h0bb5

답변

1

mouseover 이벤트에 가입하여을 (를) 입력 할 때 스크롤을 사용 중지 할 수 있습니다.

다시 스크롤을 사용하려면 mouseleave 이벤트도 수신해야합니다. 이러한 이벤트가 시작되면 스크롤을 다시 사용합니다.

이벤트 위임자는 모든 이벤트를 한 곳에서 처리 할 필요가 없도록이 용도에 적합합니다.

+0

감사합니다 nipuna, 나는 mouseover/mouseleave 조합으로 작업하게했습니다 :) 이벤트 위임자는 무엇을 의미합니까? – h0bb5

+0

문제 없습니다. 여러 요소의 이벤트를 결합하는 데 사용되는 방법입니다 (예 : 여러 개의 .show 드롭 다운이있는 경우). 당신이 오직 하나만 가지고 있다면 당신은 그것들을 필요로하지 않습니다. – nipuna777