2011-08-22 93 views
0

我有使用jQuery插件循环嵌套幻灯片所构成的画廊。我希望基于alt文字的标题显示在幻灯片中的每个图像上,但我不知道脚本中的哪个位置需要激活。如果有人能帮忙,我会非常感激。谢谢!添加标题嵌套循环的Jquery

//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' 
     }); 
    } 

回答

0

我猜每个人都如鲠因为我,因为我一直在试图找到没有运气这个问题两周的答案。我放弃了试图在Jquery.Cycle的参数中解决它,而是改变了我的画廊从列表而不是divs构建,每个列表项都包含一个标题容器,它从alt标记中提取内容。完成之后,我只需将slideExpr更改为列表,然后瞧。

此方法仍不理想的,因为我不得不构造,它检查在页加载每个字幕容器,确定是否有任何内容的第二Jquery的声明,并隐藏它,如果它是空的。但它有效,在这一点上,我真的只关心它。

也许有人会与真正的答案,这个问题有一天一起走。与此同时,我将在此留给任何可能遇到同样困难的人。

0

我觉得这没有什么与周期插件专做。 如果你的罚款与这些线路,你只需要在$添加函数(文件)。就绪(函数(){},像

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

这个直接的形象和你之后追加的替代文本可以把它定位使用CSS absolutey。 你可能需要这个适应你的结构,也可以不和的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,迈克尔