Вопрос: Как запустить jQuery после $ (window) .on ('load')

У меня есть страница WordPress, созданная с помощью конструктора страниц elementor, в которой я отображаю «флипбуки» (средства просмотра PDF) с помощью плагина под названием отзывчивые флипбуки. Флипбуки сделаны отзывчивыми благодаря функции javascript, которая заставляет их самим изменять размер всякий раз, когда изменяется размер окна браузера (я не знаю почему, но это не мой плагин).

Проблема в том, что книги отображаются в наименьшем размере, а плагин запускает jQuery (window) .trigger ('rfbwp.resize'); при загрузке страницы, вызвать изменение размера, чтобы они соответствовали текущему окну. Тем не менее, похоже, что это не работает в некоторых браузерах (по крайней мере, в Safari и Chrome на моем Mac), поэтому они остаются небольшими. Я обнаружил, что когда я помещаю эту строку кода в мое событие $ (window) .on ('scroll') , оно отлично меняет размеры книг при каждой прокрутке. Конечно, он также изменяет размер всякий раз, когда я действительно изменяю размер страницы, однако он не работает, когда я помещаю эту строку кода в мое событие $ (window) .on ('load') .

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

Может ли это быть связано с тем, как WordPress создает страницу , поскольку все компоненты поставляются со своими собственными сценариями? Это тот случай, когда $ (window) .on ('load') срабатывает последним - даже на сложной странице WordPress?

Соответствующая страница доступна по адресу http://cdgstyle.mixrabbit.com/lookbook/

<

Ответы и комментарии:

Это не похоже на WordPress конкретный вопрос для меня. Запуск вашего сайта на wp не делает его wp вопросом. Если «взломать плагин» делает свое дело, я бы спросил об этом автора плагина.
Создан 15-02-2018 10:44 Beee

мне показалось, что это вопрос, связанный с WordPress, поскольку обычно ясно, что $ (window) .on ('load') - это последнее, что происходит, поэтому я не понимаю, почему он не должен работать. Поскольку WordPress загружает множество плагинов, каждый из которых запускает свои собственные скрипты, я подумал, что, возможно, причиной этого может быть способ, которым WordPress создает страницу. Но на самом деле я не задавал это конкретно в своем вопросе, поэтому я его отредактирую.
Создан 16-02-2018 09:19 Rob Teeuwen

Скорее всего, это не имеет отношения к WordPress Core - в большинстве случаев проблема такого типа возникает при конфликте плагинов. Я бы посоветовал деактивировать все остальные ваши плагины и попробовать тему по умолчанию, а именно Twenty Seventeen. Если в тот момент это сработало, вы можете переключать тему и тест, затем активировать один плагин за раз и тестировать, пока не найдете противоречивые сведения, а затем сообщить об этом автору плагина, чтобы они могли найти обходной путь.
В то же время, если используется тема по умолчанию и только этот плагин все еще не работает, вот две вещи, чтобы попробовать это вместо $ (window) .on ('load'):
jQuery (окно) .load (функция ($) {
   // ваша функция
});

Или более кратко
(функция ($) {
  // ваша функция
}) (Jquery);

WP использует jQuery без конфликтов - так что это может быть просто синтаксис $. Если это решает проблему, часто быстрее всего отправить запрос на извлечение в репозиторий плагинов, чтобы подтолкнуть автора к действию.
Создан 16-02-2018 03:02 WebElaine4,5881512