Intereting Posts
jquery validate – действительный, если скрытое поле имеет значение Добавление кнопки в диалоговое окно динамически Как создать универсальный вызов функции проверки и сброса jquery Как отправить данные в jquery.post на mvc-controller, который использует ViewModel в качестве параметра? Загружать содержимое с внешней страницы на другую страницу с помощью Ajax / jQuery Двойной список – как перемещать элементы между двумя списками? Uncaught SecurityError: заблокирован фрейм с именем https://www.google.com, откуда вы получаете доступ к кадру с исходным кодом «http://my.site.com». Доступ к .selector внутри виджета JQuery UI SystemJS: Почему возникает ошибка jquery_1.default не является функцией при импорте jquery Изменено поведение val () для множественного выбора в jQuery? JavaScript – Простой запрос Как перетащить ручку ползунка jQuery из Capybara и ChromeDriver? Как сделать jQuery, блокирующий вызов AJAX без async = false? Использовать метод, который не работает в Google Chrome через AJAX Передача нескольких форм через AJAX – синхронизация или asynchronous

JQuery Fancybox не работает после перезагрузки DIV

Я использую Fancybox на своем сайте, чтобы открывать ссылки на другие страницы (внешние страницы).

В основном пользователь нажимает на изображение, и это открывает fancybox, содержащий внешнюю страницу. Ссылки на изображение содержатся на странице (дочернем), которая отображается в DIV на другой странице (родительский). Родитель имеет возможность перезагрузить данные в DIV, перезагружая дочернюю страницу различными параметрами, которые приведут к изменению изображения и ссылок.

Все это отлично работает с первой загрузкой. Но после этого, когда DIV перезагружается дочерней страницей, содержащей разные данные, всплывающее окно fancybox больше не работает. Если я затем сделаю обновление F5 на странице, он снова будет работать. Но только при первой загрузке.

Код на дочерней странице для настройки fancybox для ссылок на изображения:

$.noConflict(); $(document).ready(function() { $(".userdetailslink").fancybox({ 'width' : '80%', 'height' : '80%', 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'type' : 'iframe' }); }); 

Я также пробовал следующее с теми же результатами:

 $.noConflict(); $(".userdetailslink").ready(function() { $(".userdetailslink").fancybox({ 'width' : '80%', 'height' : '80%', 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'type' : 'iframe' }); }); 

Любая помощь будет оценена по достоинству.

Используете ли вы методы AJAX для загрузки div? Вы можете использовать функцию обратного вызова, чтобы применить обработку событий к загруженному контенту.

  $("div").load("url", function(){ $(".userdetailslink").fancybox({ 'width' : '80%', 'height' : '80%', 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'type' : 'iframe' }); }); 

Таким образом, он запускается и после загрузки. Конечно, вы выполняете начальную нагрузку, как и вы.