多个jQuery工具提示相互干扰
Multiple jQuery Tooltips Interfering With Each Other
我使用以下代码来拥有不同的工具提示,但每个元素只有一个工具提示。如果我只使用其中的一个,它们就可以正常工作。但是像这样,它们不能正常工作(出现在错误的位置,使用错误的类,等等)
var options = {
show: true,
hide: false,
position: {
using: function(position, feedback){
$(this).css(position);
$(this).addClass(feedback.horizontal);
$(this).addClass(feedback.vertical);
}
}
}
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
// Top
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
options.position.my = 'center bottom';
options.position.at = 'center top-' + space;
options.tooltipClass = 'vertical';
//...
$('.jui-tooltip-top').tooltip(options);
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
// Left
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
options.position.my = 'right center';
options.position.at = 'left-' + space + ' center';
options.tooltipClass = 'horizontal';
//...
$('.jui-tooltip-left').tooltip(options);
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
// Right
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
options.position.my = 'left center';
options.position.at = 'right-' + space + ' center';
options.tooltipClass = 'horizontal';
//...
$('.jui-tooltip-right').tooltip(options);
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
// Bottom (Default)
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
options.position.my = 'center top';
options.position.at = 'center bottom+' + space;
options.tooltipClass = 'vertical';
//...
$('.jui-tooltip').tooltip(options);
HTML(示例)
<a href="#" title="Some title" class="jui-tooltip-left">...</a>
<a href="#" title="Some title" class="jui-tooltip">...</a>
<a href="#" title="Some title" class="jui-tooltip-top">...</a>
我现在发现,当所有这些一起使用时,只有最后一个(底部)总是有效的。对于其他人,我是否提供选择都无关紧要。
--
如何让它们一起工作
试着用data-toggle="tooltip"
标记所有工具提示,然后用一行jquery激活它们。
$(function () {
...
$("[data-toggle='tooltip']").tooltip(options);
});
要使用此技术实现不同的位置,请在具有工具提示的元素上使用data-*
模式,并以这种方式指定位置。我相信它是data-placement="center top"
或类似的东西。
<a data-placement="center top" data-toggle="tooltip" href="#" data-original-title="Tooltip on top center">Tooltip on top center</a>
这样,您就不需要为每个位置设置不同的选项集,您可以在选项中设置默认位置,然后覆盖需要自定义位置的元素。
通过"克隆"options
解决了它。即使在初始化之后,它们也会相互干扰。
$('.jui-tooltip-top').tooltip($.extend(true, {}, options, {
position: {
my: 'right center',
at: 'left-' + space + ' center'
},
tooltipClass: 'horizontal'
}));
// etc
相关文章:
- d3.js Chord图的动态工具提示
- Graphiti中是否有任何工具提示功能
- "工具提示"jQuery插件坏了
- 单元格的工具提示或标题不显示超过2000个字符
- d3.js用按钮更新条形图工具提示
- 使Intro.js工具提示响应
- 画布中绘制的矩形区域的弹出工具提示
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 禁用NVD3 multiBarHorizontalChart中0值的工具提示
- 如何更改已显示的工具提示
- 如何访问高图表工具提示中的任何特定数据
- 如何在jQuery点击函数中添加并显示引导工具提示
- 我可以't使用jQuery更改工具提示引导程序的位置
- 语义UI中格式化的工具提示
- 柱状图上的Highcharts工具提示
- 引导工具提示用法,在搜索字段中
- 将工具提示添加到d3散点图中
- 防止网站 CSS 干扰工具提示 CSS
- 多个jQuery工具提示相互干扰
- FlotJS工具提示干扰了响应性