所以我在页面上有几个 bootstrap 5 弹出窗口,使用下面的代码启动。
let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
let popoverList = popoverTriggerList.map(function(e){return new bootstrap.Popover(e)};
我现在想关闭其中一个(如果以编程方式打开的话),我可以使用
来做到这一点popoverList[x].hide();
一切正常。 问题是如何找到给定弹出窗口的 x(索引)?
我已经接近这个目标了,但仍然不明白如何找到元素
$.each(popoverList, function (i, v) {
console.log(i, $(v._element).find('[aria-describedby="02-6423"]'));
});
这是弹出窗口的 HTML
<button type="button" class="btn btn-xs btn-warning"
data-bs-custom-class="popover-secondary"
data-bs-toggle="popover"
data-bs-placement="top"
data-bs-html="true"
data-bs-content="<p><input type='text' class='form-control form-control-sm' value='0'></p><div class='d-flex justify-content-between'><button type='button' class='btn btn-sm btn-label-secondary popover-dismiss'>Cancel</button><button type='button' class='btn btn-sm btn-primary'>Save</button></div>"
data-bs-original-title="Modify Item Price"
aria-describedby="02-6423">
<i class="bx bx-edit-alt"></i>Change
</button>
好吧,我就是这样工作的,但如果有人有更好的解决方案,请告诉我。
$.each(popoverList, function (i, v) {
if ($(v._element).parent().find('[aria-describedby="02-6423"]')) {
popoverList[i].hide();
}
});