2016-09-09 1 views
0

단추를 클릭 한 다음 스크롤을 허용 할 때까지 내 사이트를 스크롤하지 못하게하려고합니다. 성공적으로 스크롤을 방지 할 수 있지만이 함수를 바인딩 할 수 없습니다. 여기 내 코드 :창 스크롤을 방지 한 다음 단추를 누른 후 바인딩 해제 - Jquery

미리 감사드립니다!

$('body').addClass('noscroll'); 

$('.fold-trigger').click(function(event) { 
    $('body').removeClass('noscroll') 
    console.log('removed'); 
}); 


if ($('body').hasClass('noscroll')){ 
    $(window).bind('scroll', function(){ 
    $('body').on({ 
    'mousewheel': function(e) { 
     if (e.target.id == 'el') return; 
     e.preventDefault(); 
     e.stopPropagation(); 
     } 
    }) 
    }); 
} else { 
    $('body').on({ 
    'mousewheel': function(e) { 
     if (e.target.id == 'el') return; 
     e.preventDefault(false); 
     e.stopPropagation(false); 
    } 
    }) 
} 
} 

답변

1

이 수업을 토글하고 싶다면 논리를 변경해야합니다.

$('body').on('mousewheel', function(e) { 
    if ($('body').hasClass('noscroll')) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    } 
}); 

원하는 경우 언제든지 noscroll 클래스를 추가 및 제거하십시오.

관련 문제