我有一个锚点元素的工具提示,点击发送一个AJAX请求。这个元素有一个工具提示(来自Twitter Bootstrap)。我希望在AJAX请求成功返回时更改工具提示内容。启动后如何操作工具提示?更改Twitter Bootstrap Tooltip内容点击
回答
刚刚在阅读源代码时发现了这一点。所以$.tooltip(string)
调用Tooltip
类中的任何函数。如果您查看Tooltip.fixTitle
,它将获取data-original-title
属性并用它替换标题值。
因此,我们只需要做:
$(element).tooltip('hide')
.attr('data-original-title', newValue)
.tooltip('fixTitle')
.tooltip('show');
果然,它更新的称号,这是提示里面的值。
另一种方式(见下文@lukmdo评论):
$(element).attr('title', 'NEW_TITLE')
.tooltip('fixTitle')
.tooltip('show');
如果提示已经被实例化(可能使用JavaScript)这工作:
$("#tooltip_id").data('tooltip').options.title="New_value!";
$("#tooltip_id").tooltip('hide').tooltip('show');
下工作最适合我,基本上我废弃了任何现有的工具提示,并且不打算显示新的工具提示。如果像在其他答案中那样在工具提示中调用show,即使光标不在其上方悬停,也会弹出。
我去这个解决方案的原因是,其他解决方案,重新使用现有的工具提示,导致一些奇怪的问题与工具提示有时不显示时,悬停在元素上方的光标。
function updateTooltip(element, tooltip) {
if (element.data('tooltip') != null) {
element.tooltip('hide');
element.removeData('tooltip');
}
element.tooltip({
title: tooltip
});
}
对此提问的最佳答案。 – 2013-06-16 10:11:45
@DanielMiliński谢谢:) – aknuds1 2013-06-16 12:51:09
如果你使用的是boostrap3,你需要使用'data('bs.tooltip')'而不是'data('tooltip')' – 2014-06-05 19:31:47
我认为穆罕默德杜兰几乎是正确的,但使用多个类时使用相同的工具提示和他们的位置有一些问题。以下代码还避免了js错误检查是否存在任何称为“tooltip_class”的类。希望这可以帮助。
if (jQuery(".tooltip_class")[0]){
jQuery('.tooltip_class')
.attr('title', 'New Title.')
.attr('data-placement', 'right')
.tooltip('fixTitle')
.tooltip('hide');
}
通过直接更改元素中的文本来更改文本。 (不更新工具提示位置)。
$('.tooltip-inner', $element.next()).html(newHtml);
$('.tooltip-inner', $element.next()).text(newText);
变化摧毁旧的提示,然后创建并显示一个新的文本。 (导致旧的淡出,而新的淡入)
$element
.tooltip('destroy')
.tooltip({
// Repeat previous options.
title: newText,
})
.tooltip('show');
我使用的是顶级的方法有生命的“保存”。消息(使用 
,因此工具提示大小不变)并将文本更改为“完成”。 (加上填充)当请求完成时。
$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 */);
});
您可以设置提示通话内容与功能
$("#myelement").tooltip({
"title": function() {
return "<h2>"+$("#tooltipcontainer").html()+"</h2>";
}
});
您没有使用所谓的元素的标题。
继承人一个很好的解决方案,如果你想改变文本没有关闭并重新打开工具提示。
$(element).attr('title', newTitle)
.tooltip('fixTitle')
.data('bs.tooltip')
.$tip.find('.tooltip-inner')
.text(newTitle)
这样,文本替换,而无需关闭提示(犯规复位,但如果你正在做一个字的变化等应该是罚款)。当你将鼠标悬停在工具提示上时,它仍然会更新。
**这是自举3,2,你可能需要更改数据/类名,
说'$ tip'不是'$ (元素)' – 2015-01-20 10:54:45
是否做到了:'$(element).attr('title',newTitle).tooltip('fixTitle')。parent()。find('。tooltip .tooltip-inner')。text(newTitle) ;' – 2015-01-20 10:58:06
我在输入文本字段时正在更新相邻元素上的工具提示,当按下某个键时,此代码的工具提示正在消失。 – tremby 2015-04-06 11:23:14
当ajax请求成功返回时,您可以使用此代码隐藏工具提示更改其标题并再次显示工具提示。
$(element).tooltip('hide');
$(element).attr('title','this is new title');
$(element).tooltip('fixTitle');
setTimeout(function() { $(element).tooltip('show');}, 500);
破坏任何预先存在的提示,所以我们可以用新的工具提示内容重新填充
$(element).tooltip("destroy");
$(element).tooltip({
title: message
});
就可以,而不实际调用显示/隐藏更新提示文本:
$(myEl)
.attr('title', newTitle)
.tooltip('fixTitle')
.tooltip('setContent')
我不能没有得到任何答案的工作,这里有一个解决方法:
$('#'+$(element).attr('aria-describedby')+' .tooltip-inner').html(newTitle);
对于引导3.x的
这似乎是干净的解决方案:
$(element)
.attr('data-original-title', 'New title').tooltip('show')
展会是用来做标题更新的时候了,而不是等待提示被隐藏和再次显示。
您可以使用: $(element).attr('data-original-title',newValue);
由于此代码对我来说非常有帮助,我发现它有效地在我的项目
$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');
这为我工作:(3.3.6引导,jQuery的= 1.11.3)
<a id="alertTooltip" href="#" data-html="true" class="tooltip" data-toggle="tooltip" title="Tooltip message"></a>
<script>
$('#alertTooltip').attr('title', "Tooltip new <br /> message").tooltip('fixTitle');
</script>
属性data-html="true"
允许在工具提示标题上使用html。
- 1. 更改内容点击
- 2. 更改固定点击文本(Twitter Bootstrap主题)
- 3. 使用jquery更改点击textarea内容
- 4. 如何更改点击中的内容?
- 5. Javascript更改表格内容点击
- 6. 使用Twitter的Bootstrap时,如何更改popover的内容?
- 7. bootstrap手风琴图标更改点击
- 8. 自动更改Twitter Bootstrap选项卡
- 9. Bootstrap弹出窗口更改html内容
- 10. bootstrap弹出窗口内容更改
- 11. Twitter Bootstrap在标签之间点击
- 12. Twitter Bootstrap:Popover vs Tooltip?
- 13. Bootstrap Tooltip Not Displaying
- 14. Modal Body内容被取代:Twitter Bootstrap
- 15. AngularJS + Twitter Bootstrap:更改后保留部分更改(jQuery Mobile)
- 16. 如何更改Twitter Bootstrap网格宽度?
- 17. Bootstrap add tooltip to dropdown
- 18. div内容不可点击
- 19. 单击时更改按钮的内容?
- 20. 更改标签上标题的内容点击
- 21. 如何点击按钮更改下拉菜单的内容?
- 22. 更改当我点击某个产品时出现的内容
- 23. WIndows Phone C#更改内容按钮后点击
- 24. 根据链接点击更改div的内容
- 25. 根据点击哪个按钮更改内容?
- 26. 动态内容。更改组件基于链接点击
- 27. 根据点击的内容更改文本框
- 28. 根据点击的内容更改图片
- 29. 更改列表中点击div的内容?
- 30. jquery从点击数组中更改跨度标记内容
谢谢!这令人困惑了一个小时。 – twig 2012-03-27 01:24:23
甚至更短(更平滑)'$(element).attr('title','NEW_TITLE')。tooltip('fixTitle')。tooltip('show');' – lukmdo 2012-04-18 23:54:35
您还可以通过数据更改标题( 'tooltip')。options property,请参阅http://stackoverflow.com/questions/10181847/how-to-change-placement-of-twitter-bootstrap-tooltip-placement-after-initializat – 2013-04-21 01:24:20