2012-04-05 115 views
1

這似乎在我的腦袋像它應該工作,但我無法弄清楚它爲什麼不:使用Javascript - 回調函數

(function ($) { 

$.fn.extend({ 

    facebook: function (opts, callbackFnk) { 

     var $this = this; 
     ... 
     ... 
     ... 

     $this.fbGetFriends = function(clback){ 
      jsonUrl = fbMe + '/friends?access_token=' + token + '&callback=?'; 
      $.getJSON(jsonUrl, function(json){ 
       console.log(json.data[0].name); 
       clback.call(json); 
      }); 
     } 
     ... 
     ... 
     ... 

在控制檯登錄的第一個名字出現

在我的其他腳本:

var facebook = $.fn.facebook(
    { 
     myClientId : '###############', 
     mySecret : '##############' 
    } 
); 

facebook.fbOnLogin = function(){ 
    user = facebook.userDetails(); 
    token = facebook.getToken(); 
    facebook.fbGetFriends(function(json){ 
     for (var i in json) { 
      console.log('friends: ' + i + ' ' + json[i]); 
     } 
    }); 
} 

在控制檯日誌中我什麼也沒有顯示,在以前的測試中顯示錯誤數據未定義。

任何人都可以告訴我哪裏會出錯嗎?

問候

+0

@Kolink已經回答了這個問題,但是爲什麼你要將這個Facebook庫添加到'jQuery.fn'中有一個原因嗎?如果你將它分開,它應該會簡單得多... – Matt 2012-04-05 08:56:01

+0

這是一個適用於android/phonegap的實際工作的整個插件。我已經嘗試了下面,但會再試一次。 – 2012-04-05 09:03:00

回答

3

你不需要clback.call,只是clback(json)就夠了。

+0

我曾試過這個,但現在工作! yey乾杯 – 2012-04-05 09:05:13