2013-04-05 53 views
0

我有一個小問題:我想寫一個jQuery函數,循環所有的div有一個特定的類,並填充他們與Facebook的Like count(所需的URL在rel屬性)。問題是由於某種原因它只對最後一個項目有效。Facebook的喜歡計數與jQuery

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/

回答

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完成時,當前的DIV/URL現在等於這兩個變量設置爲的最後一個值。

+0

謝謝!我知道它必須是簡單的..缺乏咖啡再次罷工 – 2013-04-05 23:37:21

+0

不客氣!完全理解,容易犯錯。請儘可能快速接受。 – VNO 2013-04-05 23:38:00

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