Galleria слайд-шоу API - найти альтернативный текст текущего изображения - PullRequest
2 голосов
/ 03 марта 2011

Я внедряю слайд-шоу Galleria на сайте, и у меня оно работает нормально по большей части. Я работаю с API, чтобы настроить внешний вид моего слайд-шоу, и я хочу получить альтернативный текст с изображения и отобразить в div (сейчас я просто захожу в консоль firebug)

Вот сценарий, который я написал:

<script type="text/javascript">
    Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js');
    $("#gallery").galleria({
        width: 420,
        height: 370,
        autoplay: 5000, // will move forward every 5 seconds
        extend: function(options) {
            var gallery = this; // "this" is the gallery instance

            this.bind("loadstart", function(e) {
                var currImg = gallery.getActiveImage();
                var altText = $(currImg).attr('alt');
                console.log(altText);
            });
        }
    });
</script>

Кажется, это будет работать, но я получаю "undefined" в консоли. Кто-нибудь знает, как получить альтернативный текст из изображения "Galleria"? В документации API написано, что метод .getActiveImage () возвращает возвращаемый элемент IMG, поэтому я не уверен, правильно ли я работаю с элементом IMG или у меня даже есть альтернативный текст, доступный для меня.

Я также попытался использовать свой идентификатор изображения, который

('slideshow_image_' + e.index)

но это также дало мне неопределенный результат в журнале.

Я знаю, что в HTML есть элемент, который называется slideshow_image_0 и т. Д., И я думаю, что было бы легко найти альтернативный текст по идентификатору элемента и отобразить его. Если я посмотрю на вкладку HTML Firebug, весь div совершенно другой, и изображения динамически заполняются в разделы с помощью галереи. Не уверен, что делать ... пожалуйста, помогите!

1 Ответ

5 голосов
/ 03 марта 2011

Вам нужно привязать метод, который вызывается при смене изображения.

Также getActiveImage () не совсем полезен, как и getData. Следующий фрагмент кода печатает в консоли ALT, который вы хотели, и заголовок, на всякий случай.

Попробуйте это:

$("#gallery").galleria({
        width: 420,
        height: 370,
        autoplay: 5000, // will move forward every 5 seconds
        extend: function(options) {
            var gallery = this; // "this" is the gallery instance

            this.bind(Galleria.IMAGE, function(e) {
                var current = gallery.getData(gallery.getIndex());
                var currImg = current.original;
                var altText = $(currImg).attr('alt');
                console.log(altText, current.title);
            });
        }
    });
...