2015-06-10 3 views
0

изображения HTML выглядит следующим образомдисплей ALT текст в качестве заголовка в FancyBox с помощью jquery.fancybox

<img src="image.png" alt="Alt text" title="Description"> 

У меня есть специальная функция для отображения выходных данных заголовка изображения как имя файла без расширения и описание в FancyBox.

Мой вопрос: как получить значение из атрибута alt и вывести его вместо имени файла (title_new), если alt не пуст.

jquery.fancybox-1.3.4.pack.js (полный http://pastebin.com/bFmg95AT)

_format_title = function(title) { 
      var nstr=imgPreloader.src; 
      var nres=nstr.split("/"); 

      var img_name=nres[nres.length-1]; 
      var img_name_arr=img_name.split("."); 
      var title_new= "<b>"+img_name_arr[0]+"</b><br>"; 

     if (title && title.length) { 

       if (currentOpts.titlePosition == 'float') { 
        return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' +title_new+ title+ '</td><td id="fancybox-title-float-right"></td></tr></table>'; 
       } 

       return '<div id="fancybox-title-' + currentOpts.titlePosition + '">' + title_new + title + '</div>'; 

      } 
+0

вы звоните FancyBox по ссылке и '' теге внутри этой ссылки? – JFK

+0

тег находится внутри ссылки, сократите пример здесь: \t \t \t \t \t \t \t \t 025selectaparati-76025

+0

Поскольку вы используете fancybox v1.3.4, эта версия имеет (не документированный) API-параметр 'titleFromAlt', который вы могли бы использовать. Проверьте это сообщение, которое я написал в 2010 году https://groups.google.com/forum/#!topic/fancybox/PaFNiK8jk8w – JFK

ответ

0

Чтобы получить атрибут альт изображения вы будете использовать код, как это, где «это» образ ты используешь.

var alt = $(this).attr("alt"); 
+0

После этого он говорит, что не определено на месте «+ alt +». Или мне нужно изменить его, заменив его на другой код? Я вижу этот заголовок = selectedOpts.title || (obj.nodeName? $ (obj) .attr ('title'): obj.title) || ''; и title = selectedOpts.orig.attr ('alt'); где-то в коде –

0

Этот ответ работает на том основании, что «title_new» уже была объявлена ​​и придала значения по умолчанию

if (typeof $('img').attr('alt') !== typeof undefined && $('img').attr('alt') !== false) 
{ 
    title_new = $('img').attr('alt'); 
} 
+0

не работает, может быть, неправильный синтаксис? Вот как он получает название title = selectedOpts.title || (obj.nodeName? $ (obj) .attr ('title'): obj.title) || ''; –

+0

Извините Rokas. Я проверил синтаксис, прежде чем публиковать его. Интересно о двух вещах: Позиция, в которой код помещается в функцию. Правильно ли я понял, что вы хотите установить значение переменной title_new. –