2013-03-22 91 views
0

對不起我的英語不好,我是法國人,我對Fancybox的新版本有問題。Fancybox 2.1.4 alt屬性缺失

我的形象的alt屬性正確地插入我的HTML,但它不會出現在的fancybox的HTML代碼:

<div class="fancybox-inner" style="overflow: visible; width: 521px; height: 521px;"><img alt="" src="images_produits/gigoteuse-naissance-badou-z.jpg" class="fancybox-image"></div> 

默認情況下,在新版本的模板alt屬性爲空: alt =「」(jquery.fancybox.js) 我該如何解決這個問題?謝謝你的幫助。

+0

參見'這裏tpl'選項:HTTP:/ /fancyapps.com/fancybox/ - 用'... alt =「{alt}替換'image:''...'應該做到這一點。 – CBroe 2013-03-22 10:20:42

+0

坦克有很多答案,但它不起作用,alt屬性在代碼中顯示爲:alt =「{alt}」,另一種解決方案? – faithless02000 2013-03-22 10:39:33

回答

6

恐怕您必須將alt屬性的值推送到.fancybox-image選擇器中。

你可以得到該值無論是從您的img縮略圖alt屬性,如:

<a href="big_image.jpg" class="fancybox"><img alt="one" src="thumb_image.jpg" /></a> 

或從你的錨像data屬性:

<a data-alt="alt for fancybox one" href="big_image.jpg" class="fancybox"><img alt="one" src="thumb_image.jpg" /></a> 

然後使用beforeShow回調設置其中任何一個。你可以在你的縮略圖,或者在你的錨data屬性alt屬性給予優先考慮,無論你工作得更好:

$(".fancybox").fancybox({ 
    beforeShow: function() { 
     var imgAlt = $(this.element).find("img").attr("alt"); 
     var dataAlt = $(this.element).data("alt"); 
     if (imgAlt) { 
      $(".fancybox-image").attr("alt", imgAlt); 
     } else if (dataAlt) { 
      $(".fancybox-image").attr("alt", dataAlt); 
     } 
    } 
}); 

如果沒有他們的存在,那麼.fancybox-imagealt將保持爲空的在模板中。

參見JSFIDDLE

+1

感謝您的支持!它完全適合我! – Reaction21 2013-12-01 21:11:55

0

此代碼的工作對於每個選擇(點擊)元件,需要並增加了ALT屬性到內部的fancybox-內容圖像

jQuery('a.fancybox').fancybox({'hideOnContentClick':true, 
    'titleShow':true, 

    'onComplete' : function(links, index){ 
     var self = $(links[index]); 
     var imageHtml = self[0]; 
     var alt = $(imageHtml).find("img").attr("alt"); 
     jQuery("#fancybox-wrap #fancybox-content #fancybox-img").attr('alt', alt); 

    }, 
});