【发布时间】:2012-08-27 09:23:24
【问题描述】:
- 我有一个加载 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/fbcmets/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 cmets 没有出现。
-
我试过了:
- 在主布局上加载
#fb-root和 facebook 评论<script>....不起作用。 - 将
FB.XFBML.parse();添加到 displayFB 函数中....不起作用 - 将
FB.XFBML.parse();添加到$(document).ready(function(){}...不起作用。
- 在主布局上加载
感谢您的阅读并尽力提供帮助!
更新:
我做了这个小演示......我无法让它工作......也许 jsfiddle 不是插入 Facebook 评论的最佳位置:My First Fiddle
说我在我的网站上使用 cakephp 可能很重要...
请记住,我的代码在第一次手风琴调用和 displayFb 函数时运行良好……然后当我更改为其他手风琴时……它崩溃了……
再次感谢您!!
更新 2:
- This is another question 的用户....与我的非常相似。请注意,他没有使用手风琴...但是 jquery 是共同的...也许有人比我更能理解答案...
【问题讨论】:
-
在 displayFb 函数中尝试 console.log(data) 并检查它是否从 api 返回数据?
-
我试过了,它每次都返回数据......它工作正常但不显示 cmets,只有第一次。谢谢。
-
您能否准备一个演示并提供任何链接,以便我了解问题所在。
-
好的。非常感谢你的帮助。我会尽快准备一个演示来展示更多信息……
标签: jquery ajax accordion facebook-comments