0

ここで設定できる一般的な「フォースクエアに保存」ボタンを置き換えようとしています: https://foursquare.com/buttons/savetofoursquare

それを独自のカスタム フォースクエア ボタン (Fairhead Creative の .svg バージョン、ここで Zurb Foundation によって配布されています: http://zurb.com/playground/social-webicons ) に置き換え、スクリプトが自動的に消去して置き換えないようにしたいと考えています。あらかじめパッケージ化された foursquare 保存ボタンを備えたカスタム ボタン。

https://developer.foursquare.com/overview/widgetsのドキュメントを使用して、独自のソリューションをスクリプト化する必要があると確信していますが、少し混乱しています。そこに例があればいいのに。

また、さまざまな vcard (複数の博物館の場所) を参照する 1 つのページにいくつかのボタンがあります。これを行うには、回答の data-context 属性を使用しました: Multiple Foursquare 'save' buttons on one page . それはすべて働いています。

私は自分のhtmlを使用しています:

 <span id="venue1-foursquare" class="fc-webicon foursquare" data-context="venue1_vcard">save Venue 1 to foursquare</span>

そして後でページで:

 <span id="venue2-foursquare" class="fc-webicon foursquare" data-context="venue2_vcard">save Venue 2 to foursquare</span>

これを行う方法?

4

1 に答える 1

0

OK、この質問を投稿する前に、検索と調整を続ける必要があることはわかっていました。:)

vnads hereのおかげで、グローバルな onReady 機能をセットアップする方法を確認できました。jQuery each() を使用するように設定し、スパンをループして、データ コンテキスト値を取得し、その機能を DOM 要素にアタッチします。ここでの重要な点は、(現在) 受け入れられているソリューションの最後にある vnads のコメントから来ています。foursquare は、jQuery オブジェクトではなく、DOM 要素を探しています。

ああ、widget.replace() の代わりに widget.attach() を使用すると、カスタム グラフィックがオーバーラップするのを防ぐことができます。

<!-- 4Square js: -->
<script type='text/javascript'>
(function() {
    window.___fourSq = {
        "explicit": false,
        "onReady": function () {
            $('.fc-webicon.foursquare').each(function() {
                var this_widget = $(this);
                var this_context = this_widget.data("context");
                var widget = new fourSq.widget.SaveTo({
                    "context": this_context
                });
                widget.attach(this_widget[0]);
            });
        }
    };
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = 'http://platform.foursquare.com/js/widgets.js';
    s.async = true;
    var ph = document.getElementsByTagName('script')[0];
    ph.parentNode.insertBefore(s, ph);
})();
</script> 
于 2013-06-11T01:54:26.040 に答える