Facebook喜欢用jQuery计算

时间:2013-04-05 23:31:12

标签: jquery json facebook facebook-graph-api each

我遇到了一个问题:我正在尝试编写一个循环遍历所有具有特定类的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/

2 个答案:

答案 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');