我只是在玩Facebook和Twitter Like&分别是推文按钮。当我注意到动态附加的Twitter按钮不起作用但手动添加锚定工作。为什么会这样?
这是小提琴:Fiddle
你可以看到它无效。
代码:
$("body").append('<a href="https://twitter.com/share" class="twitter-share-button" data-dnt="true" data-count="none" data-via="SitesTwitter">Tweet</a>');
答案 0 :(得分:5)
这是因为将链接转换为twitter链接的Javascript在使用javascript添加新链接之前(可能是onload)被触发:如果删除html中的部分并在添加按钮后在js中调用它,它可以工作(或保留并在添加按钮后调用它)
$("body").append('<a href="https://twitter.com/share" class="twitter-share-button" data-dnt="true" data-count="none" data-via="SitesTwitter">Tweet</a>');
! function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
检查JsFiddle
答案 1 :(得分:1)
多么有趣。目前的代码实际上对我有用:http://codepen.io/anon/pen/punfx但我在你的小提琴上也有同样的问题。
我认为这是一个时间问题。动态添加按钮后,您必须注入twitter-wjs
。我相信这个脚本可能会扫描页面以修改任何具有twitter-share-button
类的链接,或类似的东西。因此,如果您在执行该脚本后添加按钮,则不会扫描您的链接。