我遇到了一个问题:我正在尝试编写一个循环遍历所有具有特定类的div的jQuery函数,并使用Facebook的Like计数填充它们(所需的URL位于rel
属性中)。问题是它只是出于某种原因才对最后一项起作用。
HTML:
<div class="facebook_likes" rel="http://www.somesite.com/"></div>
<div class="facebook_likes" rel="http://www.somesite2.com/"></div>
<div class="facebook_likes" rel="http://www.somesite3.com/"></div>
JS:
function getLikes() {
jQuery('.facebook_likes').each(function(){
currentdiv = jQuery(this);
url = currentdiv.attr('rel');
jQuery.getJSON('http://graph.facebook.com/'+url,function(data) {
currentdiv.text((data.shares || 0)+' Likes');
});
})
}
谢谢!
PS:我正在调用文档准备好的函数。小提琴: http://jsfiddle.net/Mjzpm/1/
答案 0 :(得分:1)
答案很简单。
function getLikes() {
jQuery('.facebook_likes').each(function(){
var currentdiv = jQuery(this);
var url = currentdiv.attr('rel');
jQuery.getJSON('http://graph.facebook.com/'+url,function(data) {
currentdiv.text((data.shares || 0)+' Likes');
});
})
}
你需要在每个循环中初始化currentDiv和url。到第一个getJSON完成时,currentDiv / url现在等于这两个变量设置的最后一个值。
答案 1 :(得分:0)
首先,您必须创建网页的用户名(请参阅您的网页名称@username。只需点击它...)
然后转到https://developers.facebook.com/tools/explorer/并获取访问令牌密钥
然后编写类似的东西
function facebookLikesCount(access_token)
{
var url = "https://graph.facebook.com/voucherin.ukbd?fields=likes&access_token="+access_token+"";
$.getJSON(url,function(json){
alert(json.likes);
});
}
facebookLikesCount('your accesstoken');