堆栈中有几个问题与我的类似,但没有一个能回答我的问题,所以...
ajax 调用返回用于创建点赞按钮的标准 html 代码:
<div class="fb-like" data-href="http://www.website.com" data-send="true" data-width="450" data-show-faces="true"></div>
当使用“检查元素”查看时,此 html 确实显示在源代码中,但未呈现,即按钮应为空白的空间。是否有一些我应该使用的渲染函数?
如有任何提示,我们将不胜感激!
编辑:这是 ajax 请求和解析 - “喜欢”按钮与其他一些文本一起放在“#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);
(我知道 eval 是邪恶的)
编辑 2:如果 FB.XFBML.parse();
在 ajax 调用后手动执行(在控制台中),则会出现类似按钮。
谢谢
最佳答案
您必须在 ajax 调用之后调用 FB.XFBML.parse();
。
文档:https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/
编辑:现在我看到您正在尝试将内容加载到 $('#thequestion')
中。 .load
接受请求完成后运行的回调。你应该这样做:
$('#thequestion').load('/my/url', { my: 'params' }, function() {
FB.XFBML.parse();
});
关于ajax - ajax 调用后渲染 'like' 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961567/