ajax调用后渲染"喜欢"按钮

18 ajax facebook facebook-like

在堆栈上有一些类似于我的问题,但没有一个回答我的问题,所以...

ajax调用返回用于创建like按钮的标准html代码:

<div class="fb-like" data-href="http://www.website.com" data-send="true" data-width="450" data-show-faces="true"></div>
Run Code Online (Sandbox Code Playgroud)

当用'inspect element'查看时,这个html确实显示在源代码中,但它没有呈现,即按钮应该是空白的空间.是否有一些我应该使用的渲染功能?

任何提示将不胜感激!

编辑:这是ajax请求和解析 - 'like'按钮被放入'#thequestion'以及其他一些文本(它来自question.php).

$("#thequestion").load("/thought/question.php", { ans: choice, id: questionId } );
    $("#graph").load("/thought/graph.php", { id: questionId } );
    $("#fbCommentsPlaceholder").html("<div class='fb-comments' data-href='http://qanai.com/thought/#" + questionId + "' data-num-posts='2' data-width='470'></div>");
    FB.XFBML.parse();
    eval(document.getElementById('thequestion').innerHTML);
    eval(document.getElementById('graph').innerHTML);
Run Code Online (Sandbox Code Playgroud)

(我知道eval是邪恶的)

编辑2:如果FB.XFBML.parse();在ajax调用后手动(在控制台中)执行,则会出现类似按钮.谢谢

Mar*_*niz 52

你必须FB.XFBML.parse();在ajax调用后调用.

文档:https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/

编辑:现在我看到你正在尝试加载内容$('#thequestion')..load接受请求完成后运行的回调.你应该做的事情如下:

$('#thequestion').load('/my/url', { my: 'params' }, function() {
    FB.XFBML.parse();
});
Run Code Online (Sandbox Code Playgroud)

文档:http://api.jquery.com/load/