J'ai ce genre de popover bootstrap du site des écoles W3 et le code édité pour ma situation (voir la fonction onPopoverHtmlLoad()) :

<!DOCTYPE html> 
<!-- https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_popover&stacked=h -->
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <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>
</head>
<body>

<div class="container">
  <h3>Popover Example</h3>
  <a href="#" data-toggle="popover" data-html='true'title="Popover Header" data-content="Some content inside the popover <button id='inpopover_button'>false</button>">Toggle popover</a>
</div>

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

//how to ensure to run this function on popoverHtmlDomLoad?
function onPopoverHtmlLoad(){
  document.getElementById("inpopover_button").innerHTML = "true"
}
</script>

</body>
</html>

La question est, comment puis-je modifier le contenu des données HTML du popover après avoir appuyé sur le bouton/déclencheur popover, s'il vous plaît ? Existe-t-il une fonction comme onHtmlDomPopoverLoad ?

J'apprécie les solutions en Javascript, mais j'accepte également l'aide de JQuery. Je cherchais des problèmes similaires mais je n'ai encore rien trouvé.

1
Marek Bernád 18 mars 2019 à 00:29

2 réponses

Meilleure réponse

Vous pouvez remplacer onPopoverHtmlLoad par :

function onPopoverHtmlLoad(){
    $("#inpopover_button").text("true")
}

Et attachez le gestionnaire d'événement avec :

$('[data-toggle="popover"]').on('shown.bs.popover', onPopoverHtmlLoad)

Voir le codepen : https://codepen.io/anon/pen/MxXwQe

4
sheeldotme 17 mars 2019 à 21:38