Galleria幻灯片api - 找到当前图片的替代文字

Ben*_*Ben 2 css jquery dom galleria slideshow

我正在网站上实现Galleria幻灯片,我在大多数情况下都能正常工作.我正在使用api来自定义幻灯片的外观,我想从图像中获取alt文本并显示在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>
Run Code Online (Sandbox Code Playgroud)

似乎这会起作用,但我在控制台中"未定义".有谁知道如何从"Galleria"图像中获取alt文本?API文档说.getActiveImage()方法返回一个返回IMG元素,所以我不确定我是否以正确的方式使用IMG元素,或者它是否有我可以抓取的替代文本.

我也试过使用我的图像ID,这是

('slideshow_image_' + e.index)
Run Code Online (Sandbox Code Playgroud)

但这也给了我一个未定义的日志结果.

我知道HTML中有一个名为slideshow_image_0等的元素,我认为按元素ID查找alt文本并显示它很容易.如果我查看firebug的HTML选项卡,整个div是完全不同的,并且图像被galleria动态填充到这些部分中.不知道该怎么办...请帮忙!

Tom*_*ero 5

您需要绑定在图像更改时调用的方法.

getAsctiveImage()也不是很有用,因为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);
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)