Сброс document.ready ($.getScript)

Мне нужно динамически включить скрипт через $.getScript.

Проблема, однако, в том, что функция $(document).ready из этого динамически включенного сценария не выполняется. (Они динамической вставки не происходит в DOM готов)

Есть ли способ заставить это сделать? Например, подделать событие document.ready?

Спасибо Уэсли

3 ответа

Решение

После запуска doc ready все будущие вызовы doc ready будут выполняться при разборе.

Читать API

Обработчик, переданный в.ready(), гарантированно будет выполнен после того, как DOM будет готов

Имеет смысл, что новые обработчики определены через $.getScript() отсутствует событие document.ready, так как DOM документа завершил загрузку ранее.

Ты пытался $(document).trigger('ready') для того, чтобы повторно вызвать это событие? Конечно, все обработчики событий, зарегистрированные ранее, будут вызваны снова.

В вашем включаемом файле переместите инициализацию в другую функцию и вызовите ее оттуда:

//include js:
$(document).ready(initialise);

function initialise(){
}

Это в файле, который загружает это все, что вам нужно сделать, это вызвать initialise

Тема запуска готового события уже хорошо освещена в SO:

Как вызвать $(). Ready() в jQuery?

Триггер $document.ready (поэтому выполняется код AJAX, который я не могу изменить)

Другие вопросы по тегам