2014-04-05 148 views
1
  1. 我使用的是Nivo Lightbox插件。我也在使用CMS超现实主义。我希望客户能够在Nivo灯箱幻灯片中更改图像的标题。以幻灯片的标题在围绕图像标签的锚标记被赋予与title属性声明的幻灯片显示的标题:将alt属性添加到灯箱幻灯片标题?

    <a href="images/1.jpg" title="Untitled 2013" data-lightbox-gallery="gallery1"><img  src="images/1.jpg" /></a> 
    
  2. 的CMS编辑器只提供客户端编辑ALT选项图像的属性。因此,我需要将锚点的title属性交换到图像的alt标记。

问题:如何将幻灯片链接的标题改为图片标记的alt属性,而不是围绕它的定位标题属性?

回答

0

我在插件中找不到任何选项;在不改变HTML(或DOM更改)的情况下,我的实际解决方案(但我认为可以改进)是使用beforeShowLightboxafterShowLightbox事件来获取子项img alt属性并将其设置在Lightbox标题中。

代码:

var altText; 
$(document).ready(function() { 
    $('#nivo-lightbox-demo a').nivoLightbox({ 
     effect: 'fade', 
     beforeShowLightbox: function() { 
      altText = $($(this)[0].el).find('img').prop('alt'); 
     }, 
     afterShowLightbox: function (light) { 
      if (altText!=="") $($(light)[0]).find('.nivo-lightbox-title').html(altText); 
     } 
    }); 
}); 

演示:http://jsfiddle.net/IrvinDominin/MH8mu/

+0

谢谢,我试图使用你的代码,但它不适合我。也许你可以看看我的网页,看看我在做什么错误http://intelligen.info/pro%20templates/template%20grid%20center/ – angela

+0

@angela好吧,我看到这个传说没有创建,你能尝试在标题属性中设置 值? –

+0

伟大的工作!谢谢 – angela

0

使用jQuery: $('[data-lightbox-gallery] img').attr('alt', $('[data-lightbox-gallery] img').parent().attr('title'));

后来编辑:我不知道如果我missunderstood你,但好像你想要的正是相反的事我已经写道:

$('[data-lightbox-gallery]').each(function(){ $(this).attr('title', $(this).children('img').attr('alt')); }

+0

['.prop()''VS .attr()'](http://stackoverflow.com/a/5876747/247893) – h2ooooooo

+1

'('[data-lightbox-gallery] img')。each(function(){$(this).attr('alt',$('[data-lightbox-gallery] img')。parent()。 attr('title'));})' – n1kkou

0

要不改变CMS既不是灯箱插件代码,我会使用watchplugin得到注意,每当alt属性已更改,并在此之后更改title属性。