所有
我的问题如下:
我有一个包含addthis按钮的页面。通常,点击会打开一个小菜单。
在某些时候,此页面的某些部分(包括addthis按钮)会被克隆(通过jQuery)并在同一页面上重复使用。
如果我点击克隆按钮,菜单就不会打开,并且会加载一个addthis页面。
所以,显然事件处理程序会丢失,按钮(实际上是< a>)将恢复为链接并显示链接页面。
那么如何重新注册克隆按钮的事件呢?
ETA:澄清:我希望克隆addthis_button
完成addthis_widget.js
所做的一切。
mylittlebutton
及其点击处理程序clickedhim()
与问题无关,它们只会触发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>
答案 0 :(得分:3)
好的,我解决了。
根据Addthis Client API,任何毫无疑问的元素都可以变成addthis.button with
<script type="text/javascript">
addthis.button("#atbutton");
</script>
因此,在克隆元素后,我调用
addthis.button(".addthis_button");
一切都像魅力一样。
谢谢大家的帮助。
附录:上面的工作原理是初始化个人做所有的AddThis按钮。如果您有单独的按钮控件,如电子邮件,Facebook等...,则需要使用
addthis.toolbox('<parent element>');
初始化这些控件。
答案 1 :(得分:0)
clone documentation说.clone( [withDataAndEvents] [,deepWithDataAndEvents]
。因此,您可以根据需要传递2个布尔参数
所以我想在上面的例子中你想做一些像
这样的事情var clone = $("a").clone(true);
答案 2 :(得分:0)
尝试使用委托方法:http://api.jquery.com/delegate/将事件附加到按钮。
答案 3 :(得分:0)
<input type="button" class="mylittlebutton" value="CLICK ME" />
$('.mylittlebutton').live('click', clickedhim, { eventtarget: this });
使用clone()
时,还应该添加一些关于处理按钮ID的逻辑答案 4 :(得分:0)
以下医生帮助了我。
http://support.addthis.com/customer/portal/articles/1337989-overview
我只需要添加一个类如下。
<a class="addthis_button_compact"></a>