Я думаю, что проблема в том, что изображения загружаются не полностью до инициализации плагина Cycle.
Просматривая источник "облегченной" версии , я вижу:
$slides.each(function() {
var $el = $(this);
this.cycleH = (opts.fit && opts.height) ? opts.height : $el.height();
this.cycleW = (opts.fit && opts.width) ? opts.width : $el.width();
});
Поскольку вы не указываете параметры width
и height
, по умолчанию используются ширина и высота элемента <img>
, которые равны 0, когда изображение загружено не полностью.
РЕДАКТИРОВАТЬ: Попробуйте:
var imgEls = $([]);
{% for photo in photos %}
imgEls = imgEls.add($('<img src="/image?blob_key={{ photo|urlencode }}" />'));
{% endfor %}
var numLoaded = 0;
imgEls.load(function () {
++numLoaded;
if (numLoaded == imgEls.length) {
$('#slideShow').cycle({
fx: 'fade',
speed: 300
});
}
});
imgEls.appendTo($('#slideShow'));
РЕДАКТИРОВАТЬ2: Синтаксическая ошибка:
$(this\).ajaxSubmit(options);
должно быть:
$(this).ajaxSubmit(options);
// ^ No backslash character '\'