API
Popover
Parameters
elementHTMLElement DOM element for component instantiation and scopeoptionsObject (optional, default{})options.toggleSelectorString Selector for toggling element (optional, default'[data-ecl-popover-toggle]')options.attachClickListenerBoolean Whether or not to bind click events on toggle (optional, defaulttrue)options.attachKeyListenerBoolean Whether or not to bind keyboard events (optional, defaulttrue)
init
Initialise component.
destroy
Destroy component.
handleClickOnToggle
Toggles between collapsed/expanded states.
Parameters
eEvent
openPopover
Open the popover.
closePopover
Close the popover.
positionPopover
Manage popover position.
handleKeyboardGlobal
Handles global keyboard events, triggered outside of the popover.
Parameters
eEvent
handleClickGlobal
Handles global click events, triggered outside of the popover.
Parameters
eEvent
autoInit
Parameters
rootHTMLElement DOM element for component instantiation and scope$1Object (optional, default{})$1.POPOVER(optional, default{})
Returns Popover An instance of Popover.
Setup
There are 2 ways to initialise the component.
Automatic
Add data-ecl-auto-init="Popover" attribute to component's markup:
<div class="ecl-popover" data-ecl-popover data-ecl-auto-init="Popover">...</div>
Use the ECL library's autoInit() (ECL.autoInit()) when your page is ready or other custom event you want to hook onto.
Manual
Get target element, create an instance and invoke init().
Given you have 1 element with an attribute data-ecl-popover on the page:
var elt = document.querySelector('[data-ecl-popover]');
var popover = new ECL.Popover(elt);
popover.init();
Retrieve an existing instance
If an existing instance needs to be updated, it can be retrieved this way:
var elt = document.querySelector('[data-ecl-popover]');
var instance = ECL.components.get(elt);
To update an existing instance, you can run destroy() and init() on this instance, like this:
instance.destroy();
instance.init();