Jquery 单个元素上的FB.XFBML.parse()不执行任何操作

Jquery 单个元素上的FB.XFBML.parse()不执行任何操作,jquery,each,xfbml,Jquery,Each,Xfbml,我有一个大页面,底部有一个“加载更多”按钮;每次单击“加载更多”都会通过AJAX加载更多内容。部分内容是类似Facebook的按钮: <div class="fb-like" data-href="http://mysite.com/a<?=$x ?>" data-width="100" data-layout="button_count" data-show-faces="false" data-send="false"></div> 没有错误消息,只是不

我有一个大页面,底部有一个“加载更多”按钮;每次单击“加载更多”都会通过AJAX加载更多内容。部分内容是类似Facebook的按钮:

<div class="fb-like" data-href="http://mysite.com/a<?=$x ?>" data-width="100" data-layout="button_count" data-show-faces="false" data-send="false"></div>
没有错误消息,只是不会产生任何结果。控制台的调试代码看起来很完美,它找到了所有正确的元素

更新 在这个简单的jsfiddle中使用它:

更新2我还尝试将代码从HTML5更改为FBML(以查看差异),这不仅得到了相同的结果,而且现在在ajax调用中只会加载一个额外的按钮,而不是两个。所以情况变得更糟了!您可以在此处使用FBML版本:

指定dom元素应为
根dom节点,默认为body
。因此,我用创建的DOM元素对
.parse
方法的单个调用来替换
。这是一本书


注意:FB.XFBML.parse()应该在小部件的父元素上调用,而不是直接在XFBML元素本身上调用。

在我的情况下,接受的解决方案不起作用,因为FB post附加在同一个DOM容器中


我最后要做的是,对容器运行一个FB.XFBML.parse(),使用一个.each循环并移除FB post类,添加类facebook post loaded。然后,在随后的Ajax调用和获取新的fb帖子时,fb.XFBML.parse()将不会拾取已加载的元素,因为它们不再具有fb post类。

DOM中是否有更高的内容像Facebook API所期望的那样包装.fb?好主意。。。但我不这么认为。即使有,我还是将这个新的HTML附加到一个容器中,这个容器已经有一堆Facebook元素被成功解析。仅供参考,我启动了bounty并添加了JSFIDLE。非常感谢!这完全解决了我的问题。
注意:
很关键,答案的顶部会更明显,会节省我几分钟。是的,Facebook文档有点不清楚。注意:这是至关重要的。
// "c" is my container div (a jQuery object, i.e. c = $('#container'); ) 
// "load more" button
$('#loadmore').click(function() {
    $.ajax({
        url: "/loadmore.php",
        success: function(html) {
            if(html) {
                // wrap new HTML in special div & append
                newDivName = "d"+String(new Date().valueOf());
                var $newHtml = $("<div id='"+newDivName+"'>"+html+"</div>");
                c.append($newHtml);

                // walk through new HTML and get all Facebook "like" buttons and parse them
                $('#'+newDivName+' .fb-like').each(function() {
                    FB.XFBML.parse(this);
                });
            }
        }
    });

});
 FB.XFBML.parse($newhtml[0]);