JQuery 禁用单页滚动功能

JQuery disable onepage scroll in function

在项目中我使用 jquery.onepage.scroll 插件。但是当我打开模式 window 并滚动然后页面也向后滚动时。我在插件的源文件中找到了 2 个地方:

1)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (t) {
    t.preventDefault();
    var n = t.originalEvent.wheelDelta || -t.originalEvent.detail;
    if (!e('body').hasClass('disabled-onepage-scroll')) u(t, n);
});

2)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (e) {
    e.preventDefault();
    var t = e.originalEvent.wheelDelta || -e.originalEvent.detail;
    u(e, t);
});

如果我这样评论,那么滚动就被禁用了,但是我怎样才能使用另一个文件中的函数来禁用它呢?例如,我有一个用于打开模式 window 的事件侦听器,当它打开时 -> 滚动被禁用

myModalEl.addEventListener('shown.bs.modal', function (event) {
    disableOnepageScroll();
});

myModalEl.addEventListener('hidden.bs.modal', function (event) {
    disableOnepageScroll();
});

所以,我只是添加了 if 语句来验证 body 是否有 'modal-open' class 名称。

1)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (e) {
    e.preventDefault();
    var t = e.originalEvent.wheelDelta || -e.originalEvent.detail;
    if (!$(document.body).hasClass('modal-opened')) {
        u(e, t);
    }
});

2)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (t) {
    t.preventDefault();
    var n = t.originalEvent.wheelDelta || -t.originalEvent.detail;
    if (!$(document.body).hasClass('modal-open')) {
        console.log('AAAAA');
        if (!e('body').hasClass('disabled-onepage-scroll')) u(t, n);
    }
});