如果包含在jQuery模式对话框中,为什么AddThis小部件不起作用?

时间:2010-12-08 19:42:08

标签: jquery jquery-ui jquery-ui-dialog addthis

如果包含在页面的任何其他位置,AddThis书签小部件将正常工作。

但是在jQuery模式对话框中,没有弹出窗口。

这是因为在模态对话框中需要另一个模态对话框吗?

如何解决这个问题?

<div id="dialog-modal" title="Modal dialog with AddThis">
    <!-- AddThis Button BEGIN -->
    <div class="addthis_toolbox addthis_default_style ">
    <a href="http://www.addthis.com/bookmark.php" class="addthis_button_compact">Share</a>
    <span class="addthis_separator">|</span>
    <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>
    </div>
    <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
    <!-- AddThis Button END -->
</div>

<script>
$(function() {

    $( "#dialog-modal" ).dialog({
        height: 140,
        modal: true
    });
});
</script>

2 个答案:

答案 0 :(得分:1)

您可以使用AddThis JavaScript API渲染按钮或工具箱。 参考:http://www.addthis.com/help/client-api#rendering-js

答案 1 :(得分:0)

对于这个问题,我找到了两个解决方案。第一种是使用getScript,每次打开模态对话框(或另一个div)时重新加载addthis js脚本,但这会产生额外的加载。另一种解决方案是不要让任何包含addthis代码的div在任何时候被隐藏(即display:none),而是用.animate({marginTop:'-200px'}, 0);,。css或其他方法将其隐藏在屏幕上类似的结果(当然给html,body或一个包含div的css属性with overflow:hidden)。