1

Facebook と Twitter の Like & Tweet Button でそれぞれ遊んでいました。動的に追加された Twitter ボタンが機能しないことに気付いたとき、手動で追加されたアンカーは機能します。なぜそうなのですか?

これがフィドルです:フィドル

機能していないことがわかります。

コード:

$("body").append('<a href="https://twitter.com/share" class="twitter-share-button" data-dnt="true" data-count="none" data-via="SitesTwitter">Tweet</a>');
4

2 に答える 2

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 を確認する

于 2013-02-06T08:23:39.177 に答える
1

なんて面白い。それが実際に私のために働いている現在のコード:http://codepen.io/anon/pen/punfxしかし、私はあなたのフィドルであなたと同じ問題を抱えています。

タイミングの問題だと思います。twitter-wjsボタンを動的に追加したら、注入する必要があります。このスクリプトはおそらくページをスキャンして、twitter-share-buttonクラスを持つリンクなどを変更すると思います。したがって、そのスクリプトの実行後にボタンを追加すると、リンクはスキャンされません。

于 2013-02-06T08:20:33.213 に答える