1

我正在使用无限滚动,在运行时加载的元素中,我有一个类似 Facebook 的按钮。我第一次调用脚本时一切正常,但是,似乎我不能多次加载它,因此滚动时创建的元素不会有一个有效的 Facebook 按钮,因为加载脚本时不存在。如果我在加载更多内容后执行此操作,则不会发生任何事情。

查看脚本(http://connect.facebook.net/en_GB/all.js),看起来脚本每页只运行一次,有什么办法解决这个问题吗?

我的代码:

var js, fjs = d.getElementsByTagName(s)[0];   
js = d.createElement(s); js.id = id;
js.async=true;  
js.src = "http://connect.facebook.net/en_GB/all.js#xfbml=1&appId=xxxxxxxxxxxxx";
fjs.parentNode.insertBefore(js, fjs);

我知道一个简单的解决方案是 JavaScript SDK,它为我们提供了一个名为 FB.XFBML.parse 的函数。

FB.XFBML.parse

一旦调用了无限滚动函数,我可以通过再次调用这个函数来加载更多的数据来渲染新的插件。但是这个解析是所有以前加载的页面上的按钮。因此,如果我现有 20 个类似按钮,在滚动并调用 Parse 函数之后,还会创建另外 10 个类似按钮,但前一次也会被解析。

那么我该如何解决这个问题呢?

4

1 回答 1

0

根据文档,您可以对特定元素执行 FB.XFBML.parse

  FB.XFBML.parse(document.getElementById('foo')); 

http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/

于 2013-05-15T21:58:54.097 回答