我遵循@Knarf 的建议并使用本机方法,因为我找不到纯 GWT 解决方案:
private native void updatePopover(Element element, String popoverHtml, boolean shown) /*-{
var $popover = $wnd.jQuery(element);
$popover.data('bs.popover').options.content = popoverHtml;
if(shown)
$popover.popover('show');
}-*/;
在哪里:
element
是弹出窗口小部件的元素(具有弹出窗口的元素)
popoverHtml
是新内容
shown
指示在更新期间是否可见弹出框
我通过 ShowHandler 和 HideHandler 跟踪可见状态:
uiPopover.addShowHandler(new ShowHandler() {
@Override
public void onShow(ShowEvent event) {
popoverVisible = true;
}
});
uiPopover.addHideHandler(new HideHandler() {
@Override
public void onHide(HideEvent event) {
popoverVisible = false;
}
});
编辑:最好使用 ShowHandler 和 HideHandler 而不是 ShownHandler 和 HiddenHandler。