我在页脚上有addthis共享按钮的页面上有一个模式。
我在页面上有一个项目列表,当单击该项目时,将通过ajax向该模式填充内容。

我正在做的是在点击时动态更改addthis:url和addthis:title。

因此,这是简化到页脚的模式:

<div class="modal">
  ...
  <div class="modal-footer">
    <div class="addthis_toolbox addthis_default_style">
      <a class="addthis_button_preferred_1"></a>
      <a class="addthis_button_preferred_2"></a>
      <a class="addthis_button_preferred_3"></a>
      <a class="addthis_button_preferred_4"></a>
      <a class="addthis_button_compact"></a>
      <a class="addthis_counter addthis_bubble_style"></a>
    </div>
  </div>
</div>


然后,当单击一个项目时,我传入一些变量以更改url和标题:

addthis.toolbox(".addthis_toolbox", null, { title: theTitle, url: theUrl });


问题是<a class="addthis_counter addthis_bubble_style"></a>

这是末尾的计数泡沫:

javascript - 在addthis共享栏上动态更改URL可以用于除共享计数以外的所有共享-LMLPHP

url和标题更改就很好,但是计数器永远不会更改。

我已经提交了一个关于addthis的支持请求,其中缺少一个体面的答复,询问我是否调用过addthis.init(),是的……我当然做到了。共享栏已初始化且正在运行,但计数未更新。

在此处搜索网络和其他问题,以及关于addthis的文档,有许多种复杂的方式来处理基于Ajax的内容。

我的代码与示例之间的区别是,ajax内容包括实际的按钮,而我的则没有。我的共享工具栏仍保留在页面上,仅更改了addthis:url和addthis:title。

也许我错过了一些小步骤,或者也许这是一个错误,而不是我的错。

希望有人可能有一些见识。

编辑

我终于从addthis得到了回应,并指出这是不可能的。如果调用工具箱功能,则不会刷新计数。

但是下面的评论和答案中显示的Joseph的变通方法目前已解决了该问题,至少直到它们提供了更合适的解决方案为止。

最佳答案

经过大量的试验和错误之后,看来addthis.counter方法是刷新计数器的方法。关于该方法的很少文献似乎仅指的是仅使用不带任何参数的方法(forum post I found),这可能会刷新静态共享元素的计数器(未确认)。但是,当您添加用于addthis.toolbox方法调用的相同属性时,它将正确刷新计数器。当您调用counter方法时,您必须提供计数器的类而不是工具箱。例如addthis.counter('.addthis_counter', null, { url: 'http://example.com'});官方文档可以在这里找到:http://support.addthis.com/customer/portal/articles/1365325-rendering-tools-with-javascript

这是摘要代码:

的HTML

<!-- Go to www.addthis.com/dashboard to customize your tools -->
<div class="addthis_toolbox addthis_default_style">
    <a class="addthis_button_preferred_1"></a>
    <a class="addthis_button_preferred_2"></a>
    <a class="addthis_button_preferred_3"></a>
    <a class="addthis_button_preferred_4"></a>
    <a class="addthis_button_compact"></a>
    <a class="addthis_counter addthis_bubble_style"></a>
</div>
<input type="text" value="http://example.com">


的JavaScript

$(function(){
    addthis_config = addthis_config || { };
    addthis_config.pubid = prompt('Provide pubid:');
    addthis.init();

    $('input').on('input',function(){
        $(".addthis_toolbox .addthis_counter").replaceWith('<a class="addthis_counter addthis_bubble_style"></a>');
        addthis.toolbox(".addthis_toolbox", null, { title: 'test', url: this.value });
        addthis.counter('.addthis_counter', null, { url: this.value });
    }).trigger('input');
});


请注意,JavaScript会提示您输入发布号。这仅用于演示,您可以为您的应用程序将其更改为addthis_config.pubid = 'xx-xxxxxxxxxxxxxxxx';

演示版

jsfiddle

关于javascript - 在addthis共享栏上动态更改URL可以用于除共享计数以外的所有共享,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32954562/

10-12 07:29