- jquery uiアコーディオンをロードする関数があります(異なるIDに基づいて異なるアコーディオン)
「Facebookコメント」というタイトルのタブをクリックすると、次のようになります。
$("#myaccordion").bind('accordionchange', function(event, ui) { id = $("#myaccordion").data('id'); switch (ui.newHeader.text()) { case "Facebook Comments": displayFb(id); break; } });
「displayFB」関数は次のとおりです。
function displayFb(id){ $.get('/fbcomments/' + id, function(data) { $("#facecomm").append(data); }); }
www.myweb.com/fbcomments/idは次のとおりです。
<div id="fb-root"></div> <script>(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/es_ES/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="fb-comments" data-href="<?php echo '/fbcomments/'.$id ?>" data-num-posts="10" data-width="220"></div>
ホームページをロードし、アコーディオンを選択し、Facebookのコメントを開くと、完璧に機能します。ページをリロードして別のアコーディオンを選択した場合は、もう一度完璧に動作します。問題は、ページ全体をリロードせずに、別のアコーディオンまたは同じアコーディオンを再度選択した場合です。アコーディオンは非常によく読み込まれ、すべてのデータ(画像、テキスト、ビデオなどの一部のタブ)が読み込まれますが、Facebookのコメントは表示されません。
私は試した:
#fb-root
メインレイアウトにFacebookのコメントを読み込んでい<script>
ます...動作しません。- displayFB関数に追加
FB.XFBML.parse();
しています....機能しません - ...に追加
FB.XFBML.parse();
しても$(document).ready(function(){}
機能しません。
読んでくれてありがとう!
アップデート:
私はこの小さなデモを作成しました...私はそれを機能させることができません...多分jsfiddleはFacebookのコメントを挿入するのに最適な場所ではありません:私の最初のフィドル
たぶん、私は自分のサイトでcakephpを使用していると言うことが重要です...
私のコードは最初のアコーディオン呼び出しとdisplayFb関数で完璧に機能することを覚えておいてください...その後、他のアコーディオンに変更すると...クラッシュします...
ありがとうございました!!
UPDATE2:
- これはユーザーの別の質問です....私のものと非常によく似ています。彼がアコーディオンを使用していないことを確認してください...しかし、jqueryは一般的です....誰かが私よりも答えをよく理解できるかもしれません...