2012-04-18 6 views
4

Я пытаюсь получить «Alt» текст свойства на изображение для отображения в качестве заголовка при использовании FancyBoxКак написать функцию в декларации

HTML

<a href='inlinePicture'........ 
    <img alt='Awesome text'...... 
</a 

Jquery

$('.inlinePicture').facybox({ 
    title: $(this).find('img').attr('alt') 
}); 

Проблема заключается в том, что в заголовке отображается «$ (this) .find ('img'). Attr ('alt')" вместо "Awesome text", что я делаю неправильно?

Я также попытался:

$('.inlinePicture').facybox({ 
    titleFormat: function (title) { 
     return $(this.orig).siblings('p').text() || title; 
    } 
+0

пытаются назначить альтернативный текст в переменной, а затем использовать его – TRR

+0

@rutwikreddy глупый вопрос, но есть ли способ написать переменную внутри «declaraton» – Plexus81

+1

Я думаю, что у вас есть pa красные вещи слишком много для вопроса, потому что в основном то, что у вас там, должно работать, если вы используете свой код jQuery после существования элемента. Я, конечно, не вижу, как вы получите код * как текст *, как вы описали. Симптом, который вы описываете, довольно странный. Можете ли вы опубликовать более полный пример, в идеале - полный * полный автономный пример? (В самом вопросе, но живая версия на http://jsbin.com или http://jsfiddle.net * тоже хорошо всегда). –

ответ

2

Для FancyBox v2 -

$(".fancybox").fancybox({ 
    beforeLoad : function() { 
     this.title = $(this.element).find('img').attr('alt'); 
    } 
}); 
+0

Спасибо, я просто нашел то же самое решение при создании примера jfiddle. :) – Plexus81

4

Try:

$('.inlinePicture').facybox({ 
    title: function() { 
     return $(this).find('img').attr('alt'); 
    } 
}); 
+1

'$ ('img', это)' лучше, но это, вероятно, только личное предпочтение ... – ThiefMaster

+0

@ThiefMaster: В самом деле, просто стиль; Я предпочитаю версию 'find'. (И обратите внимание, что '$ ('img', this)' в конечном итоге вызовет '$ (this) .find ('img')' под обложками функции '$ .fn.init'.) –

+0

@Jivings не работа. Заголовок по-прежнему получает функцию function() {return $ (this) .find ('img'). Attr ('alt');} "вместо" удивительный текст ". Ваш пример на самом деле является первым, что я написал сам, но не смог его правильно работать. Но спасибо большое за ответ – Plexus81

Смежные вопросы