如何获得现有弹出窗口的 Bootstrap 弹出窗口 'data-placement'?

How do I get Bootstrap popover 'data-placement' of existing popover?

我需要在 Ajax 数据返回后重新定位现有的弹出框(返回的数据大小会有所不同),我通过修改 .css top 来实现left 用于完成块中的弹出窗口。

我可以读取高度和宽度:

$popoverElement.height()
$popoverElement.width()

然后重新计算 $popoverElement.css({top: newtop})$popoverElement.css({left: newleft}) 的位置。

从其他帖子来看,这似乎是唯一的选择。

如果当前popover的data-placementright,我只需要改变top(调整popover的垂直位置)。但是,如果 data-placementleft 那么我还需要更改弹出框的水平位置。

如何读取弹出窗口的 data-placement 属性,以便在 if 子句中使用?我在页面中正确设置了这个属性,但不知道如何在我的函数中引用它。

编辑: 我这样做的原因是,当弹出窗口根据新内容调整大小时,箭头不再对齐——这就是我要解决的问题解决了,如果有更好的实现方法,请告诉我!

您可以从与 popover 实例关联的 bs 数据对象中获取它。

var popoverData = $popoverElement.data('bs.popover');    
var popoverPlacement = popoverData.options.placement;
console.log(popoverPlacement);

可以使用jQuery data()读取当前值(假设popover()已经实例化):

$popoverElement.data("placement");

http://www.codeply.com/go/33aPVnvfyy