$element.tooltip({
placement: 'left',
title: 'Saving...',
trigger: 'manual',
}).tooltip('show');
var parent = $element.parent();
var interval_id = setInterval(function(){
var text = $('.tooltip-inner', parent).html();
switch(text) {
case 'Saving. ': text = 'Saving.. '; break;
case 'Saving.. ': text = 'Saving...'; break;
case 'Saving...': text = 'Saving. '; break;
}
$('.tooltip-inner', parent).html(text);
}, 250);
send_request( function(){
// When the request is complete
clearInterval(interval_id);
$('.tooltip-inner', parent).html('Done. ');
setTimeout(function() {
$element.tooltip('hide');
}, 1500 /* Show "Done." for a bit */);
});
$('[data-toggle="tooltip"]').tooltip({
trigger: 'hover'
}).on('shown.bs.tooltip', function() {
var link = $(this);
var data = '';
data += '<ul style="list-style-type:none;margin:0;padding:0;text-align:left;font-size:12px">';
data += ' <li>Sherif Salah</li>';
data += ' <li>Muhammad Salah</li>';
data += ' <li>and a gazillion more...</li>';
data += '</ul>';
link.attr('data-original-title', data);
setTimeout(function() {
if (link.is(':hover')) {
link.tooltip("dispose").tooltip("show");
}
}, 1000);
});
$(element).tooltip('hide');
$(element).attr('title','this is new title');
$(element).tooltip('fixTitle');
setTimeout(function() { $(element).tooltip('show');}, 500);
12
我正在使用这个简单的方法:
$(document).ready(function() {
$("#btn").prop('title', 'Click to copy your shorturl');
});
function myFunction(){
$(btn).tooltip('hide');
$(btn).attr('data-original-title', 'Test');
$(btn).tooltip('show');
});
4
$(this).attr('data-original-title', 'click here to publish')
.tooltip('fixTitle')
.tooltip('show');
23 回答
刚刚在阅读源代码时发现了这一点 . 所以
$.tooltip(string)
调用Tooltip
类中的任何函数 . 如果你看Tooltip.fixTitle
,它会获取data-original-title
属性并用它替换 Headers 值 .所以我们干脆做到:
果然,它会更新 Headers ,这是工具提示中的值 .
另一种方式(见下面的@lukmdo评论):
在Bootstrap 3中,调用
elt.attr('data-original-title', "Foo")
就足够了,因为"data-original-title"
属性中的更改已触发工具提示显示中的更改 .UPDATE: 您可以添加.tooltip('show')立即显示更改,您无需鼠标移除和鼠标悬停目标以查看 Headers 中的更改
您可以在不实际调用show / hide的情况下更新工具提示文本:
如果您想在不关闭并重新打开工具提示的情况下更改文本,那么这是一个很好的解决方案 .
这样,文本被替换而没有关闭工具提示(没有重新定位,但如果你正在做一个单词改变等应该没问题) . 当你将鼠标悬停在工具提示上时,它仍然会更新 .
**这是bootstrap 3,对于2你可能需要更改数据/类名
如果工具提示已实例化(可能使用javascript),则此方法有效:
对于bootstrap 3.x
这似乎是最干净的解决方案:
Show用于立即更新 Headers ,而不是等待隐藏工具提示并再次显示 .
您可以使用以下代码更改
data-original-title
:以下对我来说效果最好,基本上我正在废弃任何现有的工具提示而不打扰显示新的工具提示 . 如果在工具提示中像在其他答案中一样调用show,则即使光标没有悬停在其上方,它也会弹出 .
我采用这种解决方案的原因是,其他解决方案,重新使用现有的工具提示,导致一些奇怪的问题,工具提示有时在将光标悬停在元素上方时不显示 .
对于Bootstrap 4:
谢谢这段代码对我很有帮助,我发现它对我的项目有效
$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');
在bootstrap 4中我只使用
$(el).tooltip('dispose');
然后正常重新创建 . 因此,您可以将dispose置于创建工具提示的函数之前,以确保它不会加倍 .必须检查状态并修改值似乎不太友好 .
Bootstrap 4
https://getbootstrap.com/docs/4.1/components/tooltips/#tooltipdispose
您可以使用函数在工具提示调用上设置内容
您不必仅使用被调用元素的 Headers .
销毁任何预先存在的工具提示,以便我们可以使用新的工具提示内容重新填充
我认为Mehmet Duran几乎是正确的,但是在使用具有相同工具提示及其位置的多个类时存在一些问题 . 如果有任何名为“tooltip_class”的类,以下代码也可以避免js错误检查 . 希望这可以帮助 .
通过直接更改元素中的文本来更改文本 . (不更新工具提示位置) .
通过销毁旧工具提示,然后创建并显示新工具提示来更改文本 . (导致旧的淡出淡出,新的淡出淡出)
我正在使用top方法为"Saving."消息设置动画(使用
 
,因此工具提示的大小不会改变),并在请求完成时将文本更改为"Done."(加填充) .我无法得到任何答案,这是一个解决方法:
这对我有用:( bootstrap 3.3.6; jquery = 1.11.3)
属性
data-html="true"
允许在工具提示 Headers 上使用html .使用Tooltip对象Boostrap:
对于BS4(和BS3有微小的变化)..经过数小时的搜索和试验,我想出了解决这个问题的最可靠的解决方案,它甚至解决了同时打开多个(工具提示或弹出框)的问题,失去焦点等后自动打开的问题
当ajax请求成功返回时,您可以使用此代码隐藏工具提示更改其 Headers 并再次显示工具提示 .
我正在使用这个简单的方法:
如果您需要在使用attr'data-original-title'初始化工具提示的文本后更改它,则非常有用 .