Fullpage.js 当 return 在所有浏览器中为 false 但 Chrome 时 OnLeave 触发两次

Fullpage.js OnLeave firing twice when return false in all browsers but Chrome

我有这个代码:

$('#fullpage').fullpage({
    scrollingSpeed: 500,
    onLeave: function(index, nextIndex, direction){
        if(nextIndex == 2){
                alert('test');
            return false;
        }
    }
});

在 Chrome 中警报出现一次,但在 Firefox 和 IE 中似乎出现两次。如果能深入了解为什么会发生这种情况,我们将不胜感激!

这是 fiddle:http://jsfiddle.net/97tbk/856/

谢谢!

这似乎是 fullPage.js 中的一个错误,与它处理鼠标事件的方式有关:

function addMouseWheelHandler() {
    if (document.addEventListener) {
        document.addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
        document.addEventListener('wheel', MouseWheelHandler, false); //Firefox

    // [[[[[[[ THE ISSUE IS HERE ]]]]]]]
        document.addEventListener('DOMMouseScroll', MouseWheelHandler, false); //Old Firefox 
    } else {
        document.attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8
    }
}

Firefox 似乎正在监听 wheelDOMMouseScroll 这两个事件。你可以检查一下here。 尝试删除 "Old firefox" 事件处理程序 (DOMMouseScroll),您将看到它现在如何只触发一个。

欢迎提出问题in fullpage.js repository 报告。