如何获得现有弹出窗口的 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-placement
是right
,我只需要改变top(调整popover的垂直位置)。但是,如果 data-placement
是 left
那么我还需要更改弹出框的水平位置。
如何读取弹出窗口的 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");
我需要在 Ajax 数据返回后重新定位现有的弹出框(返回的数据大小会有所不同),我通过修改 .css top
来实现left
用于完成块中的弹出窗口。
我可以读取高度和宽度:
$popoverElement.height()
$popoverElement.width()
然后重新计算 $popoverElement.css({top: newtop})
和 $popoverElement.css({left: newleft})
的位置。
从其他帖子来看,这似乎是唯一的选择。
如果当前popover的data-placement
是right
,我只需要改变top(调整popover的垂直位置)。但是,如果 data-placement
是 left
那么我还需要更改弹出框的水平位置。
如何读取弹出窗口的 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");