Jquery twttr.widgets.load()未更新url

Jquery twttr.widgets.load()未更新url,jquery,ajax,twitter,Jquery,Ajax,Twitter,我使用主干网构建了一个网站,这样页面加载一次,所有其他内容都使用ajax动态加载。在页面底部,我有FB、LinkedIN、Twitter和G+的社交媒体链接。我今天一直在努力确保这些链接在当前url更新时得到更新,而当我让它工作时,twttr.widgets.load()的行为不正常。这是我的相关代码: HTML: <span id='twitterholder'></span> <script src='//platform.twitter.com/widgets

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

HTML:

<span id='twitterholder'></span>
<script src='//platform.twitter.com/widgets.js'></script>
$(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){}
});

JS:

<span id='twitterholder'></span>
<script src='//platform.twitter.com/widgets.js'></script>
$(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){}
});
$(文档).ajaxComplete(函数(){
试一试{
$('#twitterholder').empty();//删除当前按钮
var t=$(“”);//创建一个新按钮
$(t).attr('data-text',document.title);//设置标题
$(t).attr('data-url',location.href);//设置url
$(t).appendTo($('#twitterholder');//将按钮添加到页面
twttr.widgets.load();
}捕获(ex){}
});
(是的,我可以在创建新元素的同时设置url和标题,但这不是问题的重点-请让我们滑一下)当我这样做时,按钮会刷新-我可以看到它发生-但它总是使用以前的标题和url来进行设置。我做错了什么

我的解决方法:

<span id='twitterholder'></span>
<script src='//platform.twitter.com/widgets.js'></script>
$(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函数中的第二个元素添加。加载时,它会自动查找卸载的twitter按钮,并加载它们,以这种方式加载时,按钮具有正确的标题和url。但是每次重新加载脚本都很草率,我不想这样做。

很抱歉问一个明显的问题,但是页面标题和href是否在ajax函数中更新了?它们都是全局变量吗?它们都是。当我重新加载整个脚本时,代码就起作用了,而不是我自己调用函数时。你能分享你的ajax函数吗?我可以,但这无关紧要:即使我手动运行
ajaxComplete()
函数的每一行,在url和标题被更改后,我也会得到相同的结果。