0

我有一个小问题:我正在尝试编写一个 jQuery 函数,该函数循环遍历具有特定类的所有 div,并使用 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/

4

2 回答 2

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 现在等于这两个变量设置的最后一个值。

于 2013-04-05T23:35:24.787 回答
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');
于 2017-04-04T08:13:30.047 回答