2015-05-04 4 views
0

Что я здесь делаю неправильно?jQuery селекторы не работают в Fotorama.io

Link to codepen demo

$(document).ready(function() { 
    var img = $('img'); 
    console.log(img.length); //returns 0 WHY? 
}); 

возвращает 0 объектов в то время как есть 2 img теги. Я попытался объединить его во многих отношениях, только с JS, с доступом API. Ничего не работает. Почему селектора jQuery/JavaScript здесь не работают?

ответ

2

Библиотека fotorama манипулирует вашими img тегами, по этой причине вы получаете 0 на DOM ready. Небольшой взлом - это использовать таймаут.

setTimeout(function(){ 
    var img = $('img'); 
    console.log($('img').length); 
},200) 

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

Updated Pen

+0

Nice хак. Похоже, что он работает, и он возвращает 2 объекта с таймаутом ~ 800. В любом случае, это не позволяет изменять атрибут '' data-fit'' определенного изображения. Я имею в виду, что атрибут применяется, но он ничего не делает. – knitevision

+0

Я тебя не понял. Вы добавляете атрибут или плагин? –

+0

Fotorama имеет некоторый API, один из которых - '' data-fit'', http://fotorama.io/customize/fit/, он также позволяет различным изображениям иметь разные значения этого атрибута. Он применяется к изображению в DOM, но он ничего не делает, потому что похоже, что он должен применяться до инициализации Fotorama для фактической работы. Например. http://codepen.io/knitevision1/pen/oXXrzG (серое изображение 400x400 должно быть реальным 400x400, а не увеличено) – knitevision

Смежные вопросы