简体   繁体   中英

How can I add Html tags (like <button>) in Popover Content (Bootstap) by Javascript

I am using Bootstrap-Popover. I want to have a button inside the popover. It was working fine earlier but now it's not working.

<button type="button" class="btn btn-primary mx-2" id="pop" data-container="body" data-toggle="popover" data-placement="bottom" data-html="true" data-content="">
  Button
</button>

Javascript:

function updatePopover() {
    var popStr = "";
    popStr = popStr + "<h5> Heading :  </h5><div class='mx-2 my-2'>";
    popStr = popStr + "<button class='btn btn-success' onclick='function()' id ='funcid'>Button</button>"
    document.getElementById('pop').setAttribute('data-content', popStr);
    $('#popcart').popover('hide');

}

Simply, you can do the following:

 var dynamicData = ['Dynamic Data', 'Dynamic Data', 'Dynamic Data', 'Dynamic Data']; $('[data-toggle="popover"]').popover({ title: "<h5>Heading</h5>", content: function () { var resultData = $(`<div><ul class="list-group">`); for (var i in dynamicData) { resultData = resultData.add( `<li class="list-group-item d-flex justify-content-between align-items-center"> `+ dynamicData[i] + ` <span class="badge badge-primary badge-pill">`+ i + `</span> </li>` ); // console.log(i, dynamicData[i]); } resultData = resultData.add(`</ul><br/><button class='btn btn-danger' id ='funcid'>Close</button></div>`); return resultData; } }); $(document).on("click", "#funcid", function () { $(this).parents(".popover").popover('hide'); });
 .popover-body { width: 200px; }
 <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <button type="button" class="btn btn-primary mx-2" data-toggle="popover" data-placement="bottom" data-html="true"> Button </button>

The code you provided is broken. You forgot " at the end of

popStr = popStr + "<button class='btn btn-success' onclick='function()' id ='funcid'>Button</button>"

Can you try that and check if it solves your problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM