Подтвердить что ты не робот

Javascript, как найти источник события прокрутки

У меня есть эта забавная ошибка, которая возникает, и я не понимаю, как ее отладить. Каждый раз, когда страница загружается на моем сайте, запускается событие прокрутки. Страница не заметно перемещается, и я, конечно, не запускаю прокрутку с помощью мыши или клавиатуры. Я знаю, что событие прокрутки запускается, потому что я помещаю строку кода, которая читает

$(window).bind('scroll', function (e) {console.log(e)});

Конечно, на каждой странице я получаю небольшое сообщение "jQuery.Event" в моем журнале консоли. Когда я нарушаю точку, мой стек вызовов заканчивается на jQuery.even.dispatch.apply(eventHandle.elem, аргументы), который не дает мне тонны для работы.

Вот вопрос. Как узнать, что вызывает это событие прокрутки? Есть ли атрибут в объекте события jquery, который скажет мне, был ли свиток запущен или запущен с помощью script? В этой ситуации, что бы вы сделали, чтобы понять это?

4b9b3361

Ответ 1

Хорошо, похоже, что jQuery скрывает все данные привязки событий в скрытом атрибуте. В этом сообщении описаны способы, позволяющие узнать, по крайней мере, то, что выполняется, - вы по-прежнему несете ответственность за обнаружение, где обработчики находятся в файле.

В случае, когда задействованы события scroll:

var scrollHandlers = jQuery._data(window, 'events')['scroll'];
for (var i = 0; i < scrollHandlers.length; i++) {
    console.error(scrollHandlers[i].handler);  // or console.debug, whatever proves they exist
}