首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >引导弹出内容不能动态更改

引导弹出内容不能动态更改
EN

Stack Overflow用户
提问于 2012-11-26 20:23:08
回答 10查看 83.2K关注 0票数 64

我使用的代码如下:

$(".reply").popover({
  content: "Loading...",
  placement: "bottom"
});

$(".reply").popover("toggle");

它正确地创建了弹出窗口及其内容。我想在不关闭弹出窗口的情况下将新数据加载到弹出窗口中。

我尝试过以下几种方法:

var thisVal = $(this);
$.ajax({
  type: "POST",
  async: false,
  url: "Getdes",
  data: { id: ID }
}).success(function(data) {
  thisVal.attr("data-content", data);
});

在此调用之后,元素中的数据会被更改,但不会出现在弹出窗口中。

我该怎么做呢?

EN

回答 10

Stack Overflow用户

发布于 2014-02-21 01:53:29

在bootstrap 3中:

if($el.data('bs.popover')) {
    $el.data('bs.popover').options.content = "New text";
}
$el.popover('show');
票数 22
EN

Stack Overflow用户

发布于 2015-01-15 10:25:47

在我看来,这些解决方案中的大多数实际上都是老生常谈。Bootstrap标准文档有一个可以使用的方法destroy。因此,在通过某些事件更改内容时,您可以简单地销毁内容,然后重新创建内容。

.popover('destroy')

这将正确地动态加载、刷新和重新呈现弹出窗口的内容。

票数 10
EN

Stack Overflow用户

发布于 2013-06-06 18:49:34

我使用@David@Sujay sreedhar的答案解决了这个问题,但是如果在加载新内容的过程中弹出框可见,则需要重新定位弹出框:

var popover = thisVal.attr('data-content',data).data('popover');
popover.setContent();
popover.$tip.addClass(popover.options.placement);
// if popover is visible before content has loaded
if ($(".reply").next('div.popover:visible').length){
    // reposition
    popover.show();
}

如果没有重新定位,并且新内容具有不同的高度,则弹出窗口将向下扩展,箭头将偏离目标!

此外,当按钮被点击后,它将重新打开弹出窗口,而不是关闭它。上面的代码也解决了这个问题。

演示http://jsfiddle.net/whFv6/

(我的编辑被拒绝了,所以我想我应该把它贴在这里。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13564782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档