在成功的ajax调用之后更新bootstrap popover的内容

时间:2016-01-08 06:12:39

标签: javascript ajax twitter-bootstrap popover

当我点击目标div时,我想要显示一个popover(我可能会显示一个加载标签作为内容),同时ajax get请求被发送到服务器以获取数据。一旦数据恢复,我想更新这个已打开的popover。

这是我的代码:

$(document).on('click', '.row-client', function (e) {

        var id = $(this).attr('id');

        var str = id.split('-');
        var component = str[0];
        var clientId= str[1];

        $.ajax({
            url: '../Clients/Index',
            type: 'GET',
            data: { clientId: clientId },
            dataType: 'html',
            success: function (data) {

                $('.popper').popover({
                    placement: 'bottom',
                    container: 'body',
                    html: true,
                    content: data
                });
            },
            error: function (xhr, status, error) {
                alert(xhr.responseText);
            }
        });
});

我遇到的问题是:

  1. 首次点击或加载数据时,不会自动显示弹出窗口。我需要继续点击。一旦数据被回退并加载,弹出窗口将显示在下一个'单击。为什么会这样?

  2. 在获得数据后,有什么方法可以让popover保持打开并自动更新内容?

  3. 在下一次单击以提升弹出窗口时,我希望内容为空(现在不是)。什么阻止了它?

1 个答案:

答案 0 :(得分:0)

对$()。popover的调用不会显示弹出窗口。它只会向DOM元素添加popover行为。之后出现的是点击,具体取决于"触发器"你配置了popover。

在文档准备好后立即尝试调用$(' .popper')。popover()。

要更改弹出窗口的内容,请在显示时尝试以下操作:

$('.popper').attr("data-content","new content");
$('.popper').data('bs.popover').show();