Как запустить $ (). Ready () в jQuery?

Используя jQuery, есть ли способ перезапустить запуск document.ready в какой-то момент после загрузки страницы?

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

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

По-видимому, вызов $().trigger("ready") напрямую не работает, потому что jQuery сбрасывает готовые обработчики событий после их $().trigger("ready") . Вам нужно будет отслеживать функции, необходимые для вызова, и называть их, как показано ниже.

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

 $().ready(initializationFunction); // later: initializationFunction(jQuery); 

Вы можете сделать что-то вроде этого:

 $(document).on('ready readyAgain', function() { // do stuff }); // At some other point in time, just trigger readyAgain $(document).trigger('readyAgain'); 

Заметка:

$(document).on('ready') устарел в jQuery 1.8 согласно документации . Альтернативный метод заключается в следующем:

 function myReadyFunction(){} $(myReadyFunction); // at some other point, just call your function whenever needed: myReadyFunction($); 

Что делать, если вы попытались создать controller выполнения модуля прямо в функции готовности? Вид вроде этого:

https://gist.github.com/miguel-perez/476046a42d229251fec3

Аарон – что бы вы пытались выполнить, повторно инициализируя переменные?

Отредактировано … Красота jQuery, на мой взгляд, – это функции обратного вызова. Почему бы просто не выполнить какое-либо действие / функцию после события.

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

 //Add a page Ready custom event $( document ).on( "page.ready", function( event ) { //Your Ready Scripts }); //Add a page Load custom event $( document ).on( "page.load", function( event ) { //Your Load Scripts }); //Trigger Ready scripts on page ready jQuery(function($) { $( document ).trigger( "page.ready" ); }); //Trigger Load scripts on page load $(window).load(function () { $( document ).trigger( "page.load" ); }); //Trigger the Custom events manually $( document ).trigger( "page.ready" ); $( document ).trigger( "page.load" ); 

https://learn.jquery.com/events/introduction-to-custom-events/

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

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

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

Если это поможет вам:

 var document_on_ready = new Array(); function on_ready(){ for(i=0;i 

Просто: вам просто нужно отключить флаг безопасности jQuery.isReady. Установите jQuery.isReady в false и используйте jQuery (document) .trigger (‘ready’) для повторного запуска этого события. Это очень полезно для навигации в стиле turbolinks.

ASP.Net UpdatePanel частичная загрузка страниц – это еще одно место, где может потребоваться повторное запуск функции загрузки, а не $().ready – это подходящее место для этого. В этом случае вы можете либо использовать page_load, либо событие endrequest MS framework.

Вы должны иметь возможность с document.ready.apply ();

  • jQuery - событие Fire, если class CSS изменен
  • Настройка скрипта jQuery Mobile
  • Как отменить jquery.load ()?
  • Проблемы с API-интерфейсами API Google Maps v3 + jQuery
  • Как изменить параметры с помощью jQuery?
  • Обратный вызов jQuery для нескольких вызовов ajax
  • Как сделать Jqgrid замороженный столбец
  • Rails 4 выполняет частичное с ajax, jquery,: remote => true и reply_to
  • Как изменить атрибут заголовка элемента с помощью jQuery
  • Изменение флажка jQuery и событие click
  • JQuery JQGrid - Как установить выравнивание ячеек заголовка сетки?
  • Давайте будем гением компьютера.