Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B bootstrap
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 263
    • Issues 263
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 114
    • Merge requests 114
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Bootstrap
  • bootstrap
  • Issues
  • #37071
Closed
Open
Issue created Sep 02, 2022 by Administrator@rootContributor3 of 3 checklist items completed3/3 checklist items

v5.2.0 - Popover with `trigger: "manual"` shows and immediately hides when calling `toggle()`

Created by: neoGeneva

Prerequisites

  • I have searched for duplicate or closed issues
  • I have validated any HTML to avoid common problems
  • I have read the contributing guidelines

Describe the issue

When creating a Poper with trigger set to manual, calling toggle() automatically shows, then hides the content.

I think this bug was created in this commit: https://github.com/twbs/bootstrap/commit/9b9372e8ddd60413f3d9a582bd5481586d119d8d

This if (prevHoverState === HOVER_STATE_OUT) { became if (prevHoverState) { but presumably it should be if (!prevHoverState) {

Reduced test cases

https://codepen.io/neoGeneva/pen/OJZJbNN

<div class="container py-5">
  <button class="btn btn-primary">Toggle Click</button>
</div>
const btn = document.querySelector(".btn");

const pop = new bootstrap.Popover(btn, {
  content: "hello",
  trigger: "manual"
});

btn.addEventListener("click", (e) => {
  pop.toggle();
});

What operating system(s) are you seeing the problem on?

Windows

What browser(s) are you seeing the problem on?

Chrome

What version of Bootstrap are you using?

v5.2.0

Assignee
Assign to
Time tracking