Безопасно ли вызывать $ (document) .ready () изнутри функции? - PullRequest
5 голосов
/ 22 августа 2011

Если я использую обработчик $(document).ready() внутри функции, будет ли он по-прежнему гарантировать, что код внутри него будет выполняться только в том случае, если документ готов, даже если событие готовности к документу произошло в прошлом?

Ответы [ 3 ]

14 голосов
/ 22 августа 2011

Да.

Из функции jQuery ready источник .

// Catch cases where $(document).ready() is called after the
// browser event has already occurred.
if ( document.readyState === "complete" ) {
    // Handle it asynchronously to allow scripts the opportunity to delay ready
    return setTimeout( jQuery.ready, 1 );
}
4 голосов
/ 22 августа 2011

Да, это безопасно.У jQuery есть несколько способов установить обработчики, подобные этому, и единственный «небезопасный» - это $(document).bind("ready", handler). Из документов jQuery :

Все три следующих синтаксиса эквивалентны:

  1. $(document).ready(handler)
  2. $().ready(handler)(это не рекомендуется)
  3. $(handler)

Существует также $(document).bind("ready", handler).Это ведет себя аналогично методу ready, но с одним исключением: если событие ready уже сработало, и вы пытаетесь .bind("ready"), связанный обработчик не будет выполнен.Готовые обработчики, связанные таким образом, выполняются после любой связанной с другими тремя методами выше.

1 голос
/ 22 августа 2011

Да. Вы можете поместить его в функцию, и она будет срабатывать при каждом вызове этой функции.

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