Fullpage.js OnLeave在所有浏览器中返回false时触发两次但Chrome

时间:2015-09-13 14:14:53

标签: jquery fullpage.js

我有这段代码:

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

在Chrome中,警报只发生一次,但在Firefox和IE中似乎发生了两次。任何有关为什么会发生这种情况的见解都会非常感激!

这里是小提琴:http://jsfiddle.net/97tbk/856/

谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是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报告此问题。