Bootstrap 5 Popover 是一种用于显示额外信息的弹出框,当用户点击或悬停在元素上时触发。它非常适合用于展示工具提示、表单验证消息或其他上下文相关的信息。
Popover 组件依赖于 Popper.js 库来定位弹出框。Bootstrap 5 内置了对 Popper.js 的支持,因此在使用 Popover 时无需单独引入 Popper.js。
以下是一个使用 Bootstrap 5 Popover 动态显示文本的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 5 Popover Example</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<button id="popoverButton" type="button" class="btn btn-secondary" data-bs-toggle="popover" title="Popover title" data-bs-content="">
Click to toggle popover
</button>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
// 动态更新 Popover 内容
document.getElementById('popoverButton').addEventListener('shown.bs.popover', function () {
var popoverContent = document.createElement('div');
popoverContent.textContent = 'This is dynamic content!';
this.getAttribute('data-bs-content', '');
this.setAttribute('data-bs-content', popoverContent.innerHTML);
});
</script>
</body>
</html>
问题:Popover 内容无法动态更新。
原因:Bootstrap 的 Popover 在初始化时会缓存内容,因此直接修改 data-bs-content
属性可能不会生效。
解决方法:
示例代码中的 shown.bs.popover
事件监听器展示了如何动态更新 Popover 内容。
通过这种方式,你可以灵活地控制 Popover 显示的信息,从而提升用户体验和应用的功能性。
领取专属 10元无门槛券
手把手带您无忧上云