动态添加的 bootstrap 弹出窗口不起作用

Dynamically added bootstrap popover not working

我发现了一些类似的问题,但仍然可以解决。 所以我知道,如果您在单击按钮时添加一些 html 内容,那么 jQuery 不会收听它。 但我不知道如何解决我的问题。希望有人能帮忙。如果您单击第一个“我的弹出窗口”,它就会工作。同样在红色按钮上。但是,如果您使用“点击我”按钮添加新的“我的弹出窗口”,那么新的“我的弹出窗口”将不起作用。

编辑:每个弹出窗口都有自己动态创建的独特内容。所以我不能一个内容包罗万象。

这里是fiddlejsfiddle

这是我的“按钮”

<span class="mypopover" data-html="true" data-toggle="popover" title="Title" data-content="Content">
  my popover
</span>

这里是我的popover js点击函数

$(".mypopover").popover({
  trigger: "click",
  sanitize: false,
  html: true,
  animation: true,
  container: "#mycontainer",
});

$(document).on("click", ".mypopover", function (event) {
  event.stopPropagation();
});

$(document).on("click", function () {
  $(".mypopover").popover("hide");
});

当您调用 $(".mypopover").popover(...) 时,您使用 class mypopover 将弹出窗口添加到所有现有元素。为了让 popover 对动态添加的元素起作用,您必须再次执行相同的代码。但幸运的是有更好的解决方案:

您可以在 body 上初始化 popover 并按以下方式使用 popover 构造函数的 selector 属性:

$("body").popover({
        trigger: "click",
        sanitize: false,
        html: true,
        animation: true,
        selector: '.mypopover',
        container: '#mycontainer',
    });

Here 是 fiddle。