jQuery qTip:如何将单个工具提示div附加到多个目标div?

时间:2010-01-04 00:13:53

标签: jquery tooltip qtip

jQuery qTip插件的正常行为是为每个分配的工具提示项创建一个新的隐藏div。有没有办法将单个隐藏的工具提示元素绑定到多个目标,以避免混乱DOM?

受控示例:

<div id="foo1"></div>
<div id="foo2"></div>

<script> $("#foo1,#foo2").qTip({"content":"test"}); </script>

<!-- Creates two elements, rather than one: -->
<div class="qtip" style="display:none;">test</div>
<div class="qtip" style="display:none;">test</div>

如果qTip无法做到这一点,是否有人可以推荐另一个基于jQuery的工具提示插件,它只使用一个工具提示容器支持丰富的HTML?谢谢!

4 个答案:

答案 0 :(得分:2)

我是jQuery Tools Tooltip的粉丝。它允许您在HTML中定义自己的工具提示结构,并且可以将该工具提示应用于任意数量的元素。

答案 1 :(得分:1)

使用类选择器而不是逗号分隔的元素列表。这是一个例子:

$('.selectorClass').qTip({arguments:here});

我没有对此进行测试,但它应该可以正常工作。

答案 2 :(得分:1)

您可以动态构建qTip框。

HTML:

<a id="some-link" href="#">Show a qTip</a>
<div id="hidden-element" style="display:none"></div>

使用Javascript:

$('#some-link').click(function() {
    $('#hidden-element').qtip({
        content: {
            text: '<div>Insert content here</div>',
            prerender: true  //as of beta3, this option is false by default
        },
        // etc, etc
    });

    qtip = jQuery('#hidden-element').qtip('api');
    qtip.show();

    return false;
});

有关qTip API的详细信息,请参阅http://craigsworks.com/projects/qtip/docs/api

编辑:2011年6月22日(justgrumpy) - As of beta3 the qtip does not prerender by default。内容选项中的'prerender'必须设置为'true'才能动态显示qtip。

答案 3 :(得分:1)

如果有人发现方便的话,我已经想出如何让许多工具提示图像共享一个工具提示div

 $(".tooltipBearing").qtip({
                            content: {  
                                text: $("#tooltipDiv").html()
                            }          
                      });

如果你没有把 .html()放在那里,你会看到共享工具提示出现一次,然后当你从另一个图像激活它时,它将不再适用于第一个...

tooltipBearing 是在页面中的某些图片上设置的类。

tooltipDiv 是包含工具提示内容的div的ID。