我正在尝试弹出一个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 + '&layout=standard&show_faces=false&width=350&action=like&font=lucida+grande&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:350px; height:35px;" allowTransparency="true"></iframe></span>';
return astring;
}
});
});
});
答案 0 :(得分:1)
您尝试在this
函数的其他函数内访问.each
,因此this
指的是其他内容。您可以将this
复制到变量中,以便在内部函数内安全访问:
$("a.fancybox").each(function() {
var element = this;
$(this).fancybox({
'titleFormat' : function() {
var astring = '<span>' + element.id + '</span>';
return astring;
}
});
});