2012-07-09 88 views
1

我正在一個網站上每頁都會有多個「保存」按鈕,並且我需要爲每個網站都進行回調,以便我可以在自己的系統中註冊用戶已完成保存操作。我想我已經想出瞭如何以編程的方式做到這一點......但是對於我創建的每個小部件,當我嘗試通過SDK將其添加到DOM時,我得到了「無法讀取屬性」樣式的「空」錯誤。編程保存按鈕不起作用

這裏是我的JavaScript

<script type='text/javascript'> 
    (function() { 
     window.___fourSq = { 
      "uid": "31904528", 
      "secure": true, 
      "explicit": false, 
      "onReady": function() { 
       $('.fourSquareVenueId').each(function() { 
        var vid = $(this).val(); 
        var widget = new fourSq.widget.SaveTo({ 
         "vid": vid 
        }); 
        var container = $(this).parent().find('.placeholder'); 
        widget.replace(container); 
       }); 
      } 
     }; 
     var s = document.createElement('script'); 
     s.type = 'text/javascript'; 
     s.src = 'https://platform-s.foursquare.com/js/widgets.js'; 
     s.async = true; 
     var ph = document.getElementsByTagName('script')[0]; 
     ph.parentNode.insertBefore(s, ph); 
    })(); 

基本上,當SDK被加載時,我經過,發現我所有的與場地ID隱藏的投入在裏面,並有我嘗試創建'保存'小部件替換一個空的錨標記我有作爲佔位符。

下面是在Chrome控制檯錯誤的截圖鏈接:

http://gyazo.com/f011c25bb88181251e2820e748b41093.png

任何幫助將不勝感激。謝謝。

編輯:這裏是Foursquare的文檔,我正在使用: https://developer.foursquare.com/overview/widgets#programmatic-instantiation

回答

0

一個長鏡頭,但你改變數組對象的原型?

+0

不,完全沒有。 – vnads 2012-07-09 19:48:00

+1

我明白了,如果你仔細想想它其實很明顯。我發送了一個jQuery對象,當foursquare的sdk想讓我發送一個DOM元素。將容器變量的行更改爲以下內容:var container = $(this).parent()。find('a')[0]; – vnads 2012-07-09 22:02:07

+0

這可以編輯得更清楚一點,或者vnads是否可以將您的評論發佈爲解決方案?我花了一點時間弄清楚了,但是關於返回DOM元素的線索也解決了我的問題。但不知道是否應該注意這一點,因爲它不是很清楚.... – 2013-06-11 01:48:22