twttr.widgets.load()没有更新网址

时间:2016-01-27 02:28:43

标签: jquery ajax twitter

我使用骨干建立了一个网站,这样页面加载一次,所有其他内容都使用ajax动态加载。在页面底部,我有FB,LinkedIN,Twitter和G +的社交媒体链接。我今天一直在努力确保在更新当前网址时更新这些链接,并且当我使用它时,twttr.widgets.load()的行为不正常。这是我的相关代码:

HTML:

<span id='twitterholder'></span>
<script src='//platform.twitter.com/widgets.js'></script>

JS:

$(document).ajaxComplete(function() {
    try {
        $('#twitterholder').empty();            // remove the current button
        var t = $("<a href='https://twitter.com/share' class='twitter-share-button'>"); // create a new button
        $(t).attr('data-text', document.title); // set the title
        $(t).attr('data-url', location.href);   // set the url
        $(t).appendTo($('#twitterholder'));     // add the button to the page
        twttr.widgets.load();
    } catch(ex){}
});

(是的,我可以在创建新元素的同时设置网址和标题,但这不是这个问题的重点 - 请让我们放下这个问题)当我做的时候这个,按钮刷新 - 我可以看到它发生 - 但它始终使用之前的标题和网址。我做错了什么?

我的工作方式:

与此同时,我不是将脚本加载到页面主体中加载widgets.js,而是将其添加为我的ajaxComplete函数中的第二个元素。当它加载时,它会自动寻找卸载的推送按钮,并加载它们,当它以这种方式发生时,按钮具有正确的标题和网址。但每次重新加载脚本都是草率的,我宁愿不这样做。

0 个答案:

没有答案