2

我正在一个网站上实现 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>

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

我还尝试使用我的图像 ID,即

('slideshow_image_' + e.index)

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

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

4

1 回答 1

5

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

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);
            });
        }
    });
于 2011-03-03T01:51:01.283 回答