2011-01-27 2 views
0

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

$(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

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

$("a.fancybox").each(function() { 
    var element = this; 
    $(this).fancybox({ 
     'titleFormat' : function() { 
      var astring = '<span>' + element.id + '</span>'; 
      return astring; 
     } 
    }); 
}); 
+0

Спасибо за помощь! –

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