无法使Bootstrap Popover在生成的卡上工作

时间:2019-02-16 02:35:10

标签: javascript arrays object bootstrap-4 popover

我有一个简单的搜索网站,生成的Bootstrap Cards具有与搜索词相对应的艺术家姓名,封面和专辑名称。当您单击专辑封面图像时,我想包括“下次单击时关闭”弹出框,该图像显示专辑或封底封面的歌曲列表。我已经将弹出框与HTML文件中的简单文本一起使用,但是当我将JS文件中的相同代码应用于Card时,它将无法正常工作。

这是我输出卡的功能的摘录,其中包含遍历对象数组的信息。

$(document).ready(function () {
$('[data-toggle="popover"]').popover()
});

function outputResults() {
  outputDiv.append(`<div class="card album bg-dark text-white col" style="width:18rem;"><h5 class="card-header">${i.artist}</h5>
    <a tabindex="0" data-trigger="focus" title="SONGS" data-toggle="popover"  data-content="THIS IS THE INFO I WANT TO SHOW IN THE POPOVER"><img class="card-img-top" src="${i.cover}" alt="${i.title}"></a>
    <div class="card-footer"><a target = "_blank" href="${i.link}">"${i.title}"</a> -${i.year}</div></div>`).children(':last').hide().fadeIn(1500);
};

我认为这与页面加载时html中不存在弹出窗口有关,但是一旦按下按钮就会为每个单独的卡片生成弹出窗口。

这是我在HTML文件中创建的可用于弹出窗口的代码:

<a tabindex="0" data-trigger="focus" title="Header" data-toggle="popover" data-content="Some content">Click Me</a>

2 个答案:

答案 0 :(得分:0)

我认为如果数据切换不起作用,您应该尝试在弹出窗口上使用toggle()函数。

答案 1 :(得分:0)

我认为您想要这样的东西。如果没有,则告诉。通过单击按钮完成相同的操作

$(document).ready(function() {
  $('[data-toggle="popover"]').popover()
});
outputResults();

function outputResults() {
  $("#outputDiv").append(`<div class="card album bg-dark text-white col" style="width:18rem;">
  <h5 class="card-header"></h5>
    <a tabindex="0" data-trigger="focus" title="SONGS" data-toggle="popover"  data-content="THIS IS THE INFO I WANT TO SHOW IN THE POPOVER"><img class="card-img-top"  >click dynamic</a>
    <div class="card-footer"><a target = "_blank" href=""</a> </div></div>`);
};
$("#btn").on('click',function(){
$('a').popover("show");
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script><a tabindex="0" data-trigger="focus" title="Header" data-toggle="popover" data-content="Some content">Click Me</a><br><br>
<BR><br><br>
<BR><br><br>
<BR><br><br>
<BR>
<div id=outputDiv></div>
<button id=btn>click here </button>