2012-04-19 22 views
5

背景:ajaxを使用して "foo_posts"というエンティティを取得しています。この記事では、Facebookの共有を使用していますが、ボタンのようにajaxのようなFacebookの共有ボタン

{% for post in foo_posts %} 
    <div class="foo"> 
     {{ post }} 
     <div class="fb-like" data-send="true" data-width="450" data-href="http://foo/foo/detail/{{ foo.id }}/" data-show-faces="true"></div> 
</div> 

{%ENDFOR%} は今、これらの投稿は、Ajaxを使用して移入されています。

問題: - のようにFacebookとシェアはこれが動作していない

$(function(d, s, id) { 
       var js, fjs = d.getElementsByTagName(s)[0]; 
       if (d.getElementById(id)) return; 
       js = d.createElement(s); js.id = id; 
       js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=245185848840630"; 
       fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

によって初期化されます。どのようにしてこの機能を呼び出すことができますか? ajaxの成功関数で呼び出す必要があります。 (今はそれをページ上で呼んでいます)

P.S:私は成功関数で試しました。私は間違っていると思う。

答えて

19

XFBMLタグは、デフォルトでFacebook JS-SDKの初期化時にのみ解析されます。

ページがレンダリングされた後にDOMにソーシャルプラグインを追加すると、FB.XFBML.parse()メソッドを呼び出す必要があります。

あなたは、すべての文書または内XFBML要素を検索するための要素を指定することによって、それを呼び出すことがあります。

FB.XFBML.parse(); 
// OR 
FB.XFBML.parse(DOM_ELEMENT_WHERE_AJAX_CONTENT_IS_PLACED); 
+0

おかげでたくさん!魅力のように働いた – Akamad007

+0

多くのおかげで:) – Kanga

関連する問題