Я использую Fotorama 4.5.0 (Rails gem) и всплыла проблема с получением API объекта.
При загрузке страницы
fotorama падает в скрытый
div и открывается в модальном окне по клику.
Вот код (coffee):
$objects = $('*[rel="fotorama"]')
$fotorama_div = $('.fotorama')
$fotorama_div
.on('fotorama:showend', (e, fotorama, extra) ->
# адаптирую высоту контента
).fotorama()
fotorama = $fotorama_div.data('fotorama')
console.log(fotorama) # здесь undefined
$objects.on 'click', ->
# определяю индекс картинки
modal.open({content: $('#fotorama-container')})
fotorama.show(index)
Тут
fotorama всегда
undefined.
Я добавил проверку через
if:
$objects = $('*[rel="fotorama"]')
$fotorama_div = $('.fotorama')
$fotorama_div
.on('fotorama:showend', (e, fotorama, extra) ->
# адаптирую высоту контента
).fotorama()
fotorama = $fotorama_div.data('fotorama')
console.log(fotorama) # здесь undefined
$objects.on 'click', ->
# определяю индекс картинки
modal.open({content: $('#fotorama-container')})
if typeof fotorama == "undefined"
fotorama = $fotorama_div.data('fotorama')
console.log(fotorama) # здесь undefined после первого открытия модального окна
fotorama.show(index)
После открытия модального окна
fotorama всё ещё
undefined. Но когда я закрываю модальное окно и открываю его второй раз — я получаю API объект, и всё работает как задумывалось.
Также когда я исполняю
$fotorama_div.data('fotorama') в консоли, объект получается.
Почему не работает получение объекта при загрузке страницы?