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?谢谢!
答案 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。