2

全部

我的问题如下:

我有一个包含 addthis 按钮的页面。通常,单击会打开一个小菜单。

在某些时候,此页面的某些部分(包括 addthis 按钮)会被克隆(通过 jQuery)并在同一页面上重复使用。

如果我单击克隆按钮,菜单不会打开,并且会加载一个 addthis 页面。

因此,显然事件处理程序丢失了,并且按钮(实际上是 <a>)恢复为链接并显示链接页面。

那么如何重新注册克隆按钮的事件呢?

ETA:澄清:我想克隆addthis_button完整的一切addthis_widget.jsmylittlebutton它的 clickhandlerclickedhim()与问题无关,它们只会触发addthis_button.

如果有人能指出我正确的方向,我将不胜感激 另外,如果有帮助,我有一个 20 行的片段来说明这一点。

谢谢

ETA:代码片段:

<script src='../../js/lib/jquery-1.6.2.js' type="text/javascript"></script>

<!-- up to here, the original button is initialized -->
<a class="addthis_button addthis_button" href="http://www.addthis.com/bookmark.php?v=250">
  <img src="../../resources/img/button_share.gif" width="59" height="17" alt="Bookmark and Share" style="border:0"/>
</a>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>


<br />

<!-- button to trigger the cloning -->
<input type="button" id="mylittlebutton" onclick="clickedhim(this);" value="CLICK ME" />

<script type="text/javascript" >
function clickedhim(eventtarget) {
  var nearest_addthis = $(eventtarget).siblings("a.addthis_button");
  // clone button, and insert it after the original
  nearest_addthis.after(nearest_addthis.clone());
}
</script>
4

5 回答 5

3

好的,我解决了。

根据Addthis Client API,任何毫无戒心的元素都可以变成一个 addthis.button

<script type="text/javascript">
addthis.button("#atbutton");
</script>

所以,在我克隆我的元素之后,我打电话给

addthis.button(".addthis_button");

一切都像魅力一样。

感谢大家的帮助。

附录:上面的作品初始化了个人的无所不能的AddThis按钮。如果您有单独的按钮控件,例如电子邮件、Facebook 等...,您将需要使用

addthis.toolbox('<parent element>');

初始化这些控件。

于 2011-11-04T12:53:58.437 回答
0

克隆.clone( [withDataAndEvents] [,deepWithDataAndEvents]文档说。因此,您可以根据需要传递 2 个布尔参数

所以我认为在上面的例子中你想做类似的事情

var clone = $("a").clone(true);
于 2011-11-01T12:45:00.143 回答
0

尝试使用委托方法:http ://api.jquery.com/delegate/将事件附加到按钮。

于 2011-11-01T13:07:10.920 回答
0
<input type="button" class="mylittlebutton" value="CLICK ME" />

$('.mylittlebutton').live('click', clickedhim, { eventtarget: this });

您还应该在使用 clone() 时添加一些关于处理按钮 ID 的逻辑

编辑:http: //jsfiddle.net/UJ5JM/

于 2011-11-01T13:50:14.753 回答
0

以下文档帮助了我。

http://support.addthis.com/customer/portal/articles/1337989-overview

我只需要添加一个如下所示的类。

<a class="addthis_button_compact"></a>
于 2015-04-08T08:28:28.733 回答