我正在使用无限滚动,在运行时加载的元素中,我有一个类似 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 个类似按钮,但前一次也会被解析。
那么我该如何解决这个问题呢?