this.id внутри fancybox - PullRequest
       16

this.id внутри fancybox

0 голосов
/ 27 января 2011

Я пытаюсь открыть fancybox с кнопкой Facebook LIKE в заголовке, которая ссылается на уникальную страницу, основанную на том, на каком элементе щелкнулиВсе изображения имеют уникальный номер, и я просто пытаюсь получить этот номер с помощью this.id, но он ничего не возвращает.

$(document).ready(function() {
    $("a.fancybox").each(function() {
        $(this).fancybox({
            'overlayShow'   : true,
            'autoDimensions': true,
            'transitionIn'  : 'elastic',
            'transitionOut' : 'elastic',
            'overlayColor'  : '#000',
            'overlayOpacity': 0.7,
            'titlePosition' : 'inside',
            'titleFormat'   : function() {
                var astring = '<span id="fb-title"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.myurl.com%2Fscript.php%3Fi%3D' + this.id + '&amp;layout=standard&amp;show_faces=false&amp;width=350&amp;action=like&amp;font=lucida+grande&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:350px; height:35px;" allowTransparency="true"></iframe></span>';
                return astring;
            }
        });
    });
});

1 Ответ

1 голос
/ 27 января 2011

Вы пытаетесь получить доступ к this внутри функции, отличной от функции .each, поэтому this относится к чему-то другому.Вы можете скопировать this в переменную для безопасного доступа во внутреннюю функцию:

$("a.fancybox").each(function() {
    var element = this;
    $(this).fancybox({
        'titleFormat'   : function() {
            var astring = '<span>' + element.id + '</span>';
            return astring;
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...