Actualmente estoy tratando de incorporar algunos popovers en mi página web, pero me encontré con una pared.
Creé algunos botones emergentes en mi pie de página, pero no sucede nada cuando haces clic en ellos.
Creé un archivo js para la inicialización y lo importé al final de mi página, junto con el paquete de arranque necesario para ejecutarlo, pero recibo un error en la consola, que es:
Uncaught TypeError: i.createPopper is not a function at Fe.show (tooltip.js:273:29) at Fe._enter (tooltip.js:598:15) at Fe.toggle (tooltip.js:191:17) at HTMLButtonElement.<anonymous> (tooltip.js:532:107) at HTMLButtonElement.i (event-handler.js:102:15)Mi código completo está abajo. ¡Gracias!
Scripts en documento HTML:
<script src="popover.js"></script> <script src="node_modules/jquery/dist/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"> </script> <script src="node_modules/@popperjs/core/dist/umd/popper.min.js"></script> <script src="node_modules/bootstrap/dist/js/bootstrap.bundle.js"></script> <script src="function.js"></script>El html para los popovers:
<ul class="list-inline"> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs- toggle="popover" data-bs-placement="top" data-bs-content="Home Page">Home</button> </li> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs- toggle="popover" data-bs-placement="top" data-bs-content="Home Page">About</button> </li> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs- toggle="popover" data-bs-placement="top" data-bs-content="Home Page">Privacy Policy</button> </li> </ul>archivo JS:
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))En el marcado, el atributo data-bs-toggle tiene un espacio adicional que puede ser la causa de que no funcione. Sin él, tu ejemplo funciona. Vea abajo.
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.5/dist/umd/popper.min.js" integrity="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.min.js" integrity="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK" crossorigin="anonymous"></script> <ul class="list-inline"> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Home Page">Home</button> </li> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Home Page">About</button> </li> <li class="list-inline-item"> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Home Page">Privacy Policy</button> </li> </ul>