UNPKG

carbon-components

Version:

Carbon Components is a component library for IBM Cloud

91 lines (67 loc) 4.55 kB
### SCSS #### Modifiers Use these modifiers with `.bx--dropdown` class. | Name | Description | |-------------------------|-------------------------------------------------------| | .bx--dropdown--selected | Applies specific styles for a selected dropdown item. | | .bx--dropdown--open | Applies specific styles when the dropdown is opened | | .bx--dropdown--up | Applies style to have the dropdown slide up instead of down | ### JavaScript #### Getting component class reference ##### ES2015 ```javascript import { Dropdown } from 'carbon-components'; ``` ##### With pre-build bundle (`carbon-components.min.js`) ```javascript var Dropdown = CarbonComponents.Dropdown; ``` #### Instantiating ```javascript // `#my-dropdown` is an element with `[data-dropdown]` attribute Dropdown.create(document.getElementById('my-dropdown')); ``` #### Public Methods | Name | Params | Description | |----------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | release | | Deletes the instance | | getCurrentNavigation | | Returns the currently highlighted element | | navigate | direction: `Number` | Moves the focus up or down | | select | itemToSelect: `Object` | Handles clicking on the dropdown options, doing the following: Changing text to selected option, removing selected option from options when selected, and emitting custom events | | setCloseOnBlur | | Sets an event handler to document for "close on blue" behavior | ##### Example - Changing the active item ```javascript // `#my-dropdown` is an element with `[data-dropdown]` attribute var dropdownInstance = Dropdown.create(document.getElementById('my-dropdown')); // `#my-dropdown-link-1` is one of the `<a>`s with `bx--dropdown-link` class dropdownInstance.select(document.getElementById('my-dropdown-link-1')); ``` #### Options | Option | Default Selector | Description | |----------------------|-------------------------|-----------------------------------------------------------------------| | selectorInit | [data-dropdown] | The selector to find the dropdown component | | selectorItem | .bx--dropdown-link | The selector to find the clickable area in the selected dropdown item | | selectorItemSelected | .bx--dropdown--selected | The selector to find the clickable area in the selected dropdown item | | classSelected | bx--dropdown--selected | The class for the selected dropdown item. | #### Events | Event Name | Description | |------------------------|--------------------------------------------------------| | dropdown-beingselected | Custom event fired before a dropdown item is selected | | dropdown-selected | Custom event fired after a dropdown item is selected | ##### Example - Preventing a dropdown item from being selected in a certain condition ```javascript document.addEventListener('dropdown-beingselected', function (evt) { if (!myApplication.shouldDropdownItemBeSelected(evt.target)) { evt.preventDefault(); } }); ``` ##### Example - Notifying events of all dropdown items being selected to an analytics library ```javascript document.addEventListener('dropdown-selected', function (evt) { myAnalyticsLibrary.send({ action: 'Dropdown item selected', id: evt.target.id, }); }); ```