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
  • #37245
Closed
Open
Issue created Oct 03, 2022 by GeoSot@GeoSotContributor3 of 3 checklist items completed3/3 checklist items

JavaScript Instances registry, faulty re-set new instance

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

Bootstrap's Instances registry, by design, doesn't support multiple instances per element. However, in the rare case we are trying to re-initiate the same component for second time, it wrongly overrides the already existing instance

I found this flaw on #37195 (closed), where two tooltips were created using the same element

and is caused on this method https://github.com/twbs/bootstrap/blob/da0fe8c8b2e969bcf620a9ef1c1ca4f2b8554ec6/js/src/dom/data.js#L15-L31


Steps to reproduce

  • open debugger with given breakpoint on https://github.com/twbs/bootstrap/blob/da0fe8c8b2e969bcf620a9ef1c1ca4f2b8554ec6/js/src/dom/data.js#L30
  • initialize an instance of any available js component, using constructor ex: new Toast(myelement)
  • Debugger with stop on the breakpoint
  • repeat the first step again -> new Toast(myelement)
  • Debugger should not stop in the same point as the instance already exists

Reduced test cases

https://codepen.io/GeosSV/pen/gOzzWYV?editors=1011

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

Windows, macOS, Android, iOS, Linux

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

Chrome, Safari, Firefox, Microsoft Edge, Opera

What version of Bootstrap are you using?

v5.2.2

Assignee
Assign to
Time tracking