второе событие $ (document) .ready jQuery - PullRequest
6 голосов
/ 17 апреля 2009

Я использую некоторый внешний jQuery с $ (document) .ready () для вставки рекламы после того, как событие готового документа сработало, что-то вроде:

$(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
});

Это необходимо для предотвращения блокировки пользовательского интерфейса из-за медленной загрузки рекламы. Пока все работает хорошо.

Теперь мне нужно вставить еще несколько объявлений, хотя наша система CMS не может быть частью внешнего JS-файла, поэтому мне интересно, можно ли использовать второе событие готовности документа и вставить его с помощью встроенного тега сценария? Если да, то каким будет порядок выполнения события готовности к внешнему документу JS или встроенного сценария?

Ответы [ 5 ]

10 голосов
/ 17 апреля 2009

Вы можете использовать столько методов обработки событий, сколько пожелаете, jquery объединяет их в очередь. Порядок вызова метода совпадает с порядком определения - последний добавленный вызывается последним.

Полезно также то, что вы можете загружать HTML-код со скриптом, используя ajax, и когда код загружается в DOM $ (), также будет вызываться ready (), так что вы можете загружать объявления динамически.

9 голосов
/ 17 апреля 2009

Да, добавление нескольких $ (документов) .ready () не является проблемой. Все будет выполнено на готовом событии.

Обратите внимание, что ваш пример кода неверен. $ (document) .ready () принимает функцию, а не выражение. Так что вы должны передать ему такую ​​функцию:

 $(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
 });

Эта функция будет выполнена, когда документ будет готов.

6 голосов
/ 17 апреля 2009

Вот небольшой учебник по работе с несколькими документами

3 голосов
/ 17 апреля 2009

Дополнительный бонус от способа jQuery: что вы можете иметь несколько готовых () определения. Это дело со всеми События jQuery.

$ (документ) .ready (function () { оповещение («Номер один»); });

$ (документ) .ready (function () { оповещение («Номер два»);

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

JQuery вызывает готовые функции в порядке их определения. Если вы хотите сначала загрузить некоторые данные и удалить их, используйте holdReady () .

...