我在一个锚元素上有一个工具提示,它在单击时发送AJAX请求。该元素有一个工具提示(来自Twitter Bootstrap)。我希望在AJAX请求成功返回时改变工具提示内容。启动后如何操作工具提示?
当前回答
如果你在HTML中设置了标题属性,那么在点击图标或按钮时使用 (美元).attr(“标题”,newValue);
其他回答
想改变工具提示内容/标题点击像引导文档。你注意到你复制了一个代码示例吗?我在这里使用Bootstrap v5…
<span id="tooltip" class="btn btn-outline-primary" data-bs-toggle="tooltip" data-bs-placement="top"
title="Tooltip content">Tooltip</span>
在进行下一步之前,请确保已启用Bootstrap5工具提示
$('#tooltip').click(function() {
$(this).attr('data-original-title', 'Content changed!').tooltip('show');
$(this).attr('data-original-title', 'Tooltip content');
});
当您将鼠标悬停在这个span元素上时,它将显示工具提示内容。当你点击它,这将改变内容更改!并将返回默认标题Tooltip内容。
下面的工作对我来说是最好的,基本上我废弃了任何现有的工具提示,不麻烦显示新的工具提示。如果像在其他答案中一样调用工具提示上的show,即使光标没有悬停在它上面,它也会弹出。
我选择这个解决方案的原因是,其他解决方案重用了现有的工具提示,导致了一些奇怪的问题,当鼠标悬停在元素上方时,工具提示有时不显示。
function updateTooltip(element, tooltip) {
if (element.data('tooltip') != null) {
element.tooltip('hide');
element.removeData('tooltip');
}
element.tooltip({
title: tooltip
});
}
如果你想在不关闭和重新打开工具提示的情况下更改文本,这里有一个很好的解决方案。
$(element).attr('title', newTitle)
.tooltip('fixTitle')
.data('bs.tooltip')
.$tip.find('.tooltip-inner')
.text(newTitle)
这样,文本替换而不关闭工具提示(不重新定位,但如果你正在做一个词的改变等应该是好的)。当你将鼠标悬停在工具提示上时,它仍然在更新。
**这是bootstrap 3,对于2,你可能需要改变数据/类名
对于BS4(和BS3有微小的变化)..经过数小时的搜索和试验,我想出了这个问题最可靠的解决方案,它甚至解决了同时打开多个(工具提示或弹出窗口)的问题,以及失去焦点后自动打开的问题等。
$('[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); }); <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <div class="card"> <div class="card-body text-center"> <a href="JavaScript:void(0);" class="btn btn-sm btn-link" data-toggle="tooltip" data-placement="top" data-html="true" title="Loading...">gazillion</a> </div> </div> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> </body> </html>
我用ajax动态更改工具提示中的标题。
首先启用工具提示: $(“[data-toggle = "提示"]”).tooltip () 然后更改title属性,然后重新初始化工具提示
$(“#foo”).attr('title','TheNewTitle'); $('[data-toggle=“tooltip”]').tooltip('dispose'); $('[data-toggle=“tooltip”]').tooltip()
推荐文章
- HTML5文本区域占位符不出现
- 我如何捕捉Ajax查询后错误?
- jQuery:什么是限制“数字”仅输入文本框的最佳方法?(允许使用小数点)
- 在window.setTimeout()发生之前取消/终止
- 检测当用户滚动到底部的div与jQuery
- 检测视口方向,如果方向是纵向显示警告消息通知用户的指示
- 禁用从HTML页面中拖动图像
- Jquery停止子事件触发父事件
- 使函数等待元素存在
- 我如何从一个URL获得片段标识符(哈希#后的值)?
- 将JS对象转换为表单数据
- 多模态叠加
- 如何从函数中禁用jQuery对话框中的按钮?
- 如何检查jQuery插件是否已加载?
- 与evt.preventDefault()相反的是什么?