почему не делегирует работу для прокрутки?
Поскольку событие прокрутки не проходит через DOM.
Но в современных браузерах (IE> 8) вы можете захватывать scroll событие , например, на уровне документа или любой статический контейнер для динамического элемента. Вы должны использовать метод javascript addEventListener()
, передающий true
в качестве параметра useCapture
, jQuery не поддерживает фазу захвата:
Примечание: в вашем примере событие scroll
происходит с уровнем #parent
, а не #child
document.addEventListener('scroll', function (event) {
if (event.target.id === 'parent') { // or any other filtering condition
console.log('scrolling', event.target);
}
}, true /*Capture event*/);
-DEMO-
Для объяснения различий между захватом / распространением событий см. здесь или там .
Имейте в виду, что захваченное событие всегда вызывается до любого другого всплывающего события того же рода.