Обработчик прокрутки Javascript не срабатывает

Все, что я пытаюсь сделать, - это вызывать функцию, когда прокручивается DIV. Ради простоты, я ничего не определяю. Также я смотрю только на DOM-совместимые браузеры, такие как Chrome, Safari (не IE).

Моя проблема в том, что обработчик прокрутки никогда не вызывается. Если я заменю scroll на click, он работает, когда я нажимаю. Каким-то образом свиток не работает.

Обратите внимание: я не могу использовать jQuery :(

Вот мой код:

HTML:

<div id="test">--long content--</div>

JS:

   function myFunc() {
        console.log('in myFunc');
    }
    var objTable = document.getElementById("test");

    objTable.addEventListener("scroll", function () {
        myFunc();
    }, false);

FIDDLE:

http://jsfiddle.net/yymg5/7/

Ответ 1

Это потому, что в окне прокручивается не div. Попробуйте изменить прослушиватель элементов на родительский элемент div (в данном случае это окно), например this.

window.addEventListener("scroll", function () {
    myFunc();
}, false);

Ответ 2

у меня была похожая проблема в моем случае. Этот код правильный, но не работал, потому что,

window.addEventListener("scroll", function () {
    myFunc(); 
}, false);

событие прокрутки не стреляло. так как мое тело прокручивало вместо documentElement.

Я просто удалил height: 100% из моего тега body, а затем началось событие прокрутки.