如何使用 jquery 在 Bootstrap 5 中创建和修改弹出窗口?

ran*_*789 2 javascript jquery popover bootstrap-5

有人知道如何通过 javascript/jquery 创建数据并将其添加到 Bootstrap 5 弹出窗口吗?

使用 bootstrap 3 我能够做到这一点:

$('#element').popover({ placement : 'left', trigger : 'focus', html: true });
let content_template = `<h1>Hello World!</h1>`;
$('#element').data('bs.popover').options.content = content_template;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用 bootstrap 5 做同样的事情。文档没有提到任何关于这一点的内容。有谁知道 BS5 中的 popover 是如何管理的?

Swa*_*ati 7

您需要获取 popover 的实例,然后用于popover_instance._config.content ="some message"在 popover 内设置新内容。

演示代码

new bootstrap.Popover(document.querySelector('[data-bs-toggle]'), {
  placement: 'left',
  trigger: 'focus',
  html: true
})
//get instance
var popover_instance = bootstrap.Popover.getInstance(document.querySelector('[data-bs-toggle]'))
let content_template = `<h1>Hello World!</h1>`;
popover_instance._config.content = content_template;//set content
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="Popover title">Click to toggle popover</button>
Run Code Online (Sandbox Code Playgroud)

  • 以防万一有人遇到同样的问题,您需要在创建弹出窗口时设置 sanitize: false 。 (2认同)