2014-12-25 41 views
0

我正在使用Facebook Javascript API。我想是這樣創造的東西:在Facebook API中創建按鈕以顯示/隱藏(切換)

1. Album Name [show/hide] 

Album details 

2. Album Name [show/hide] 

Album details 

3. Album Name [show/hide] 

Album details 
  1. 首先,我檢索專輯
  2. 會有一個按鈕旁邊的專輯名稱來切換使用jQuery相冊(顯示/隱藏)的詳細信息列表。
  3. 專輯的詳細信息被放入具有特定ID(「album1」,「album2」等)的p標籤中
  4. 使用jQuery切換特定ID。
  5. 但是,在FB.api內創建的按鈕in1無法切換。
  6. out of FB.api的另一個按鈕out1可以切換。

QNS:爲什麼FB.api中的按鈕無法進行切換?

我只是想爲每個專輯製作一個特定的按鈕,所以我可以專門切換每個專輯的細節。

部分代碼如下:

<script> 
    function albums() 
    { 

    FB.api('me/albums/', function(response) { 
     for (var i=0; i<response.data.length; i++) { 
     var album = response.data[i]; // each album 

     // Album Name 
     var albumName = response.data[i].name; 
     var para = document.createElement('p'); 
     var node = document.createTextNode(albumName); 
     para.appendChild(node); 
     document.body.appendChild(para); // put p into body of document 

     // Button 
     var btn = document.createElement("button"); 
     btn.id = "in"+(i+1); 
     var t = document.createTextNode("inside");  
     btn.appendChild(t); 
     document.body.appendChild(btn); 


     // Album Details 
     var para = document.createElement('p'); 
     para.id = "album"+(i+1); 
     var node = document.createTextNode("Album details"); 
     para.appendChild(node); 
     document.body.appendChild(para); 
     } 


    }); 
    } 
</script> 

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 

<button id="out1">out1</button> 
<script> 
jQuery("#out1").click(function() { 
    jQuery("#album1").toggle(); 
}); 
jQuery("#in1").click(function() { 
    jQuery("#album1").toggle(); 
}); 
</script> 

回答

0

你正試圖把一個甚至監聽器異步加載的元件上。意思是,該按鈕還不存在。確保你知道異步是什麼意思,知道JavaScript開發人員,尤其是使用Facebook JS SDK時非常重要。並在創建/顯示按鈕之後立即將一個事件監聽器添加到按鈕。

另外,請記住,您只會在第一個按鈕上放置事件偵聽器。

+0

好的,謝謝。我會更多地閱讀異步。那麼如何創建按鈕監聽器? – Radiance

+0

或者在創建按鈕之後 - 這會導致很多事件監聽器 - 或者在for循環之後(例如$('。yourbuttonclass'))。甚至更好:根本不用jquery來處理那些簡單的事情。有「addEventListener」,本地JavaScript的東西。 – luschn

+0

最主要的是當您嘗試添加事件偵聽器時,您的按鈕不會被創建。如何正確編程取決於你,有很多方法可以解決這個問題。試着理解代碼,這一直很重要。如果你明白一切如何運作,那很容易。 – luschn