如何覆盖twitter bootstrap工具提示?

时间:2012-06-26 19:08:40

标签: twitter-bootstrap tooltip

我正在使用Twitter Bootstrap包中的工具提示来显示页面上的项目信息。有时信息会发生变化,需要在工具提示中进行更新。我尝试用新标题重新初始化工具提示:

$('#selector').tooltip({ title: 'new text'});

但是,新文本不会更改工具提示的标题。它与最初设定的相同。任何想法为什么,有什么工作吗?谢谢!

6 个答案:

答案 0 :(得分:14)

更新:正如@ Nigel-Angel所指出的,TWBS v3使用data('bs.tooltip')


在一个元素上初始化工具提示对象后,无法覆盖该工具提示对象。但你可以删除它并再次执行。

尝试删除然后使用所有选项重新初始化工具提示(如果有的话)。

$('#selector').data('tooltip',false)          // Delete the tooltip
              .tooltip({ title: 'new text'});

可能需要删除侦听器,但它的工作原理如下。

答案 1 :(得分:7)

这项技术对我没有用,所以我找到了一个答案,隐藏在其中一条评论of a similar question中。

更新工具提示的显示文字的最简洁方法

$(element).attr('title', 'NEW_TITLE').tooltip('fixTitle').tooltip('show');

感谢lukmdo

答案 2 :(得分:2)

出于某种原因,这对我不起作用(bootstrap 2.1.1)。 我必须做的是:

    $('#element').tooltip('destroy');
    $("#element").tooltip({'placement':'right', 'title':'larger larger text title'});
    $("#element").tooltip('show');

答案 3 :(得分:2)

我使用bootstrap 3,没有错误,这些都不适合我。通过.tooltip('destroy')销毁工具提示并在同一函数.tooltip({...})中重新创建工具提示将导致工具提示不再有效。只有在销毁调用完成它的异步工作之后才进行娱乐调用,这才有效(因此,为什么立即娱乐被破坏了)。

销毁内部数据.data('tooltip',false)的建议不起作用。首先,使用bootstrap 3,它将是data('bs.tooltip, false),当调用它时,如果当前显示工具提示,它将泄漏它并使其永久显示。新的工具提示将显示和隐藏在其顶部。

我的最终解决方案是:

$x.tooltip('hide');
$x.data('bs.tooltip', false);
$x.tooltip({ ... }) // recreate it

请注意,同时通过.attr('title', '...')和类似的解决方案更改标题并调用.tooltip('fixupTitle')也有效 - 但放弃了placement选项,可能还放弃了其他选项,并制作了一个工具提示放置在元素的顶部而不是右边,就像它最初一样。它甚至可能有上面列出的其他一些错误,在此解决方案的其他变体中可以看到,但我看起来并不多。

答案 4 :(得分:0)

@Sherbrow你可以使用最简单的一个。不要去这个复杂的解决方案。 这是示例代码。

$('#spanUsername').prop('title', newValue);     

答案 5 :(得分:0)

这在引导程序3中有效,高于该线程中给出的所有其他解决方案:

$('#tooltip_selector').attr('data-original-title', 'New Title Here');