Я пытаюсь инициализировать плагин FitVids на Fancybox модальном содержимом после загрузки этого содержимого. Он отлично работает, если я использую обратный вызов onUpdate
, когда пользователь изменяет размер окна просмотра, но если я попытаюсь заставить его работать с afterShow
, чтобы применить его после отображения содержимого, я ничего не получаю. Я проверил, чтобы afterShow
работал, бросая в console.log('whatever')
, и это было успешно.Инициализация плагина FitVids на модальном содержании Fancybox
Это код, я использую:
$('.tile-link.fancybox').click(function() {
var url = $(this).data('url');
var getContent = $('.tile-lightbox-content').load(url + ' #lightboxBucketContent');
$('.tile-lightbox-content').empty();
$.fancybox({
content: getContent,
width: '90%',
height: '90%',
type: 'html',
scrolling: 'no',
modal: false,
padding: 20,
enableEscapeButton: true,
titleShow: true,
autoSize: false,
autoResize: true,
autoDimensions: false,
aspectRatio: true,
helpers: {
media: true
},
// afterShow doesn't work
afterShow: function() {
$('.fancybox-inner').fitVids({
customSelector: 'iframe[src^="http://somewebsite.com"]'
});
},
// onUpdate works correctly
onUpdate: function() {
$('.fancybox-inner').fitVids({
customSelector: 'iframe[src^="http://somewebsite.com"]'
});
}
});
});
Я использую это на WordPress сайте, где содержание загружается в некоторых каменных плиток, которые запускают модальное окно FancyBox при нажатии и загружаете части страницы через функцию jQuery load
. Все работает денди, за исключением FitVids. Модальное содержание плитки часто содержит встроенные видеоролики iframe, и мне нужно, чтобы они сотрудничали на сенсорных/мобильных устройствах.
Заранее спасибо.
просто любопытно: вам действительно нужны FitVids ?, не делайте видеосъемки внутри fancybox «из коробки»? попробуйте примеры на http://fancyapps.com/fancybox/#examples -> Расширенная функциональность -> помощник в области мультимедиа – JFK
@JFK Я думал об одном и том же, но этот помощник, похоже, подходит для таких поставщиков, как YouTube, Vimeo, Metacafe и т. д. Он также работает для тех элементов, когда 'href' URL-адреса fancybox непосредственно относится к самому элементу мультимедиа. В моей ситуации модальные поля содержат текстовое содержимое, которое пользователь записывает в WYSIWYG сообщения WordPress и встроенное ('iframe') видео, которое извлекается из стороннего источника, который не является одним из основных поставщиков, перечисленных в списке средств массовой информации помощник. Мой клиент использует CDN для представления СМИ и других вещей потенциальным клиентам и публично. – htmlbot
Если вы действительно загружаете контент как 'inline, попробуйте инициализировать FitVids как обратный вызов метода' .load() ', и я думаю, что это сработает для того, что вы пытаетесь сделать с' afterShow' – JFK