为嵌套的Jquery Cycle添加标题

时间:2011-08-22 16:56:25

标签: jquery jquery-cycle

我有一个使用jquery循环插件构建的嵌套幻灯片库。我希望基于alt文本的标题显示在幻灯片中的每个图像上,但我不知道脚本中我需要在哪里激活它。如果有人能提供帮助,我会非常感激。谢谢!

//stop subgal initially
            $('#hovergal .subgal').cycle({
                fx: 'fade',
                timeout: 10000,
                slideExpr: 'img'
            }).cycle('pause');

            //start subgal on click
            $('#hovergal').cycle({
                fx: 'scrollUp',
                speed: 300,
                timeout: 0,
                slideExpr: '>div.subgal',
                pager: 1,
                pagerAnchorBuilder: function(i) {
                    return $('aside.sgnav a:eq(' + i + ')');
                },
                after: function(curr,next,opts) {
                    var cmd = opts.currSlide == 1 ? 'resume' : 'pause';
                    $('div.subgal').cycle(cmd);
                }
            });
    } else {//else, if there's only one gallery to be shown

        $('#hovergal .subgal').cycle({
            fx: 'fade',
            timeout: 3000,
            slideExpr: 'img'
        }); 
    }

2 个答案:

答案 0 :(得分:0)

我猜每个人都像我一样陷入困境,因为我一直试图找到这个问题的答案两个星期没有运气。我已经放弃尝试在Jquery.Cycle的参数内解决它,并改为将我的库转换为列表而不是div,每个列表项包含一个从alt标记中提取其内容的标题容器。完成后,我只需将slideExpr更改为列表,瞧。

此方法仍然不需要,因为我必须构造第二个Jquery语句,在页面加载时检查每个标题容器,确定它是否有任何内容,如果它是空的则隐藏它。但它确实有效,而且在这一点上我真正关心它。

也许某人有一天会得到这个问题的真正答案。与此同时,我将这里留给任何可能遇到同样堵塞的人。

答案 1 :(得分:0)

我认为这与循环插件无关。 如果你对这些行很好,你只需要在$(document).ready(function(){}中添加一个函数,比如

$('.slideshow img').each(function(){
    var el = $(this);
    var alttext = el.attr('alt');
    el.after('<span>'+alttext+'</span>');
});

这会在图像后面直接附加您的替代文字,您可以使用css将其定位为绝对。 您可能需要根据您的结构进行调整,可能不是img和“el.after”,而是

$('.slideshow img').each(function(){
    var el = $(this);
    var parentdiv = el.parents('div:eq(0)');
    var alttext = el.attr('alt');
    parentdiv.append('<span>'+alttext+'</span>');
});

左右。 你可以在这里找到一个工作实例(我今天的帖子) Jquery Cycle —multiple nested slideshows and cycle terminating 或者在这里 http://ferienhaus-fischland-ahrenshoop.de/mini4/完成此项目后需要删除mini4 / 欢迎提出更多问题,greetinx,Michael