Обработка серии событий DOMNodeInserted как отдельного события в JavaScript - PullRequest
1 голос
/ 22 июня 2011

Я применяю функцию прослушивателя событий, когда элементы вставляются в документ через событие DOMNodeInserted.Элементы вставляются в быстрой последовательности, но я хотел бы, чтобы моя функция выполнялась только один раз для каждой серии вставок элементов.

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

jQuery используется для других функций в этом проекте, поэтому это открытая опциярассмотреть здесь, но, возможно, абстракция не очень полезна в этом случае.Я заметил метод .one().Возможно, можно связать обработчик событий, который отменяется, как только он запускается один раз, а затем восстанавливается с таймаутом?

Предложения?

1 Ответ

2 голосов
/ 22 июня 2011

Вы можете использовать метод, который вы предложили (используя .one() и повторное присоединение после тайм-аута), но он звучит как debounce (ожидание окончания пакета вызовов функций перед вызовом обработчика или вызовомобработчик только один раз в начале пакета вызовов функций) - это то, что вы ищете.Вы можете попробовать реализацию Джона Ханна bebounce или попробовать плагин jQuery Бена Алмана .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...