如何将带引号的HTML元素放入Bootstrap popover



我的引导弹出按钮:

<button type="button" class="btn btn-secondary" data-container="body" data-bs-toggle="popover" data-placement="left" data-content="CONTENT">
Popover Text
</button>

我想把这个HTML放到数据内容中,这样当点击popover时它就会显示出来:

<a href="@Url.Action("Edit", "RentalHistories", new { id = item.RentalHistoryId })">
EDIT
</a>

不幸的是,HTML中的引号似乎破坏了它。我尝试过使用单引号、双引号和转义引号代码&quot。

我相信这就是你想要的:

var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
<!DOCTYPE html>
<html>
<head>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
</head>
<body>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-html="true" data-bs-placement="left" data-bs-content='<a href="@Url.Action("Edit", "RentalHistories", new { id = item.RentalHistoryId })">
EDIT
</a>'>
Popover Text
</button>
</body>
</html>

对于您正在使用的引导程序的哪个版本,它似乎也很重要。经过一点研究,一些较旧的引导程序版本不需要你放一些类似"数据放置"的东西,而是"数据位置"。这里我使用的是Bootstrap版本5.0。

Bootstrap 5.0 DOCS还显示,您可以通过使用(添加到.js文件或添加标签:(初始化弹出窗口,使其看起来可见

var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})

另一件事是,您一开始就使用单引号是正确的,因为嵌套双引号的双引号在执行时会导致混乱。

参考文献:

Bootstrap 5.0 Popovers DOCS

数据bs而不是数据属性的原因

最新更新