如果动态附加,为什么twitter推文按钮不起作用?

时间:2013-02-06 08:06:28

标签: javascript jquery twitter

我只是在玩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>');

2 个答案:

答案 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类的链接,或类似的东西。因此,如果您在执行该脚本后添加按钮,则不会扫描您的链接。