kopia lustrzana https://github.com/shoelace-style/shoelace
Add selection examples to dropdown
rodzic
0f8eb31a07
commit
42193557fc
|
@ -121,4 +121,57 @@ Dropdown panels will be clipped if they're inside a container that has `overflow
|
||||||
</style>
|
</style>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Getting the Selected Item
|
||||||
|
|
||||||
|
When dropdowns are used with [menus](/components/menu.md), you can listen for the `slSelect` event to determine which menu item was selected. The menu item element will be exposed in `event.detail.item`. You can set `value` props to make it easier to identify commands.
|
||||||
|
|
||||||
|
```html preview
|
||||||
|
<div class="dropdown-selection">
|
||||||
|
<sl-dropdown>
|
||||||
|
<sl-button slot="trigger" caret>Edit</sl-button>
|
||||||
|
<sl-menu>
|
||||||
|
<sl-menu-item value="cut">Cut</sl-menu-item>
|
||||||
|
<sl-menu-item value="copy">Copy</sl-menu-item>
|
||||||
|
<sl-menu-item value="paste">Paste</sl-menu-item>
|
||||||
|
</sl-menu>
|
||||||
|
</sl-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const container = document.querySelector('.dropdown-selection');
|
||||||
|
const dropdown = container.querySelector('sl-dropdown');
|
||||||
|
|
||||||
|
dropdown.addEventListener('slSelect', event => {
|
||||||
|
const selectedItem = event.detail.item;
|
||||||
|
console.log(selectedItem.value);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, you can listen for the `click` event on individual menu items. Note that, using this approach, disabled menu items will still emit a `click` event.
|
||||||
|
|
||||||
|
```html preview
|
||||||
|
<div class="dropdown-selection-alt">
|
||||||
|
<sl-dropdown>
|
||||||
|
<sl-button slot="trigger" caret>Edit</sl-button>
|
||||||
|
<sl-menu>
|
||||||
|
<sl-menu-item value="cut">Cut</sl-menu-item>
|
||||||
|
<sl-menu-item value="copy">Copy</sl-menu-item>
|
||||||
|
<sl-menu-item value="paste">Paste</sl-menu-item>
|
||||||
|
</sl-menu>
|
||||||
|
</sl-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const container = document.querySelector('.dropdown-selection-alt');
|
||||||
|
const cut = container.querySelector('sl-menu-item[value="cut"]');
|
||||||
|
const copy = container.querySelector('sl-menu-item[value="copy"]');
|
||||||
|
const paste = container.querySelector('sl-menu-item[value="paste"]');
|
||||||
|
|
||||||
|
cut.addEventListener('click', () => console.log('cut'));
|
||||||
|
copy.addEventListener('click', () => console.log('copy'));
|
||||||
|
paste.addEventListener('click', () => console.log('paste'));
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
[component-metadata:sl-dropdown]
|
[component-metadata:sl-dropdown]
|
||||||
|
|
Ładowanie…
Reference in New Issue