# 可嵌套/Nestable
創建可以通過拖拽排序的可嵌套式列表。
可嵌套組件允許你通過拖拽排序條目。這是非常有用的,比如在管理界面中希望組織不同的分類或者菜單條目時。
* * *
## 用法
可嵌套列表由列表本身、它的內容條目和可嵌套的面板組成。注意 使用此組件需要額外添加 `nestable.css` 文件,在`css/components`文件夾中。此組件需要額外添加 `nestable.js` 文件,在`js/components`文件夾中。
| class和data屬性 | 描述 |
| --- | --- |
| `.uk-nestable` | 添加此類名到 `<ul>` 元素,定義可嵌套組件。 |
| `.uk-nestable-item` | 添加此類名到列表的每一個 `<li>` 元素。 |
| `.uk-nestable-panel` | 添加此類名到 `<li>` 元素內部的 `<div>` 元素,給條目設定樣式。 |
NOTE 為了使必要的JavaScript生效,需要添加 `data-uk-nestable` 屬性。
### Example

### Markup
```
<ul class="uk-nestable" data-uk-nestable>
<li class="uk-nestable-item">
<div class="uk-nestable-panel"> ... </div>
</li>
</ul>
```
* * *
## 可嵌套組件的手柄/Nestable handle
默認地,整個可嵌套元素都可以用來拖拽排序。要創建一個替換默認效果的手柄,需要添加 `{handleClass:'uk-nestable-handle'}` 選項到data 屬性中。并為你想要用作手柄的元素添加手柄的類名。
### Example

NOTE 在這個例子中,我們使用了 [圖標組件](icon.html) 中的 `.uk-icon-bars` 類名,來為手柄定義樣式。
### Markup
```
<ul class="uk-nestable" data-uk-nestable="{handleClass:'uk-nestable-handle'}">
<li class="uk-nestable-item">
<div class="uk-nestable-panel">
<div class="uk-nestable-handle"></div>
...
</div>
</li>
</ul>
```
* * *
## 可嵌套撥動/Nestable toggle
默認地,整個可嵌套元素都能拖拽排序。要創建一個替換默認效果的手柄,需要添加 `.uk-nestable-toggle` 類名和 `data-nestable-action="toggle"` 屬性到可嵌套面板內的 `<div>` 元素。
### Example

### Markup
```
<ul class="uk-nestable" data-uk-nestable">
<li class="uk-nestable-item">
<div class="uk-nestable-panel">
<div class="uk-nestable-toggle" data-nestable-action="toggle"></div>
...
</div>
</li>
</ul>
```
* * *
## 多個列表的排序
要實現垮列表的排序,你可以為每個列表添加e `data-uk-nestable="{group:'GROUP-NAME'}"` 屬性將他們歸為一組。
### Example

### Markup
```
<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>
<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>
```
* * *
## 禁用嵌套
禁用列表條目的嵌套,你只需添加 `data-uk-nestable="{maxDepth:1}"` 屬性。當然你還可以使用此屬性來確定要嵌套的深度能有多大。

### Markup
```
<ul class="uk-nestable" data-uk-nestable="{maxDepth:1}">...</ul>
```
* * *
## JavaScript 選項
這是一個如何使用data屬性來設置選項的例子:
```
data-uk-nestable="{maxDepth:0, group:'widgets'}"
```
| 選項 | 可用值 | 默認值 | 描述 |
| --- | --- | --- | --- |
| `group` | string | false | 列表組 |
| `maxDepth` | integer | 10 | 最大嵌套層數 |
| `threshold` | integer | 20 | 以px為單位,開始拖拽的閾值。 |
| `listNodeName` | string | ul | 列表節點名稱 |
| `itemNodeName` | string | li | 條目節點名稱 |
| `listBaseClass` | string | uk-nestable | 列表的基本類名 |
| `listClass` | string | uk-nestable-list | 列表的類名 |
| `listitemClass` | string | uk-nestable-list-item | 列表條目的類名 |
| `itemClass` | string | uk-nestable-item | 條目類名 |
| `dragClass` | string | uk-nestable-list-dragged | 添加到被拖拽列表的類名 |
| `movingClass` | string | uk-nestable-moving | 拖動時添加到 `<html>` 元素的類名 |
| `handleClass` | string | uk-nestable-handle | 拖拽手柄的類名 |
| `collapsedClass` | string | uk-nestable-collapsed | 被收縮的條目的類名 |
| `placeClass` | string | uk-nestable-placeholder | 當前被拖拽元素的占位符類名 |
| `noDragClass` | string | uk-nestable-nodrag | 帶有此類名的元素不會觸發拖拽。Elements with this class will not trigger dragging. Useful when having the complete item draggable and not just the handle. |
| `noChildrenClass` | string | uk-nestable-nochildren | 帶有此class的元素不再有子級元素。這對于最低層級的條目很有用。 |
| `emptyClass` | string | uk-nestable-empty | 空列表的類名 |
### 手動初始化
```
var nestable = UIkit.nestable(element, { /* options */ });
```
### Events
| 名稱 | 參數 | 描述 |
| --- | --- | --- |
| `start.uk.nestable` | event, nestable object | 拖拽開始時觸發 |
| `move.uk.nestable` | event, nestable object | 移動可嵌套條目時觸發 |
| `stop.uk.nestable` | event, nestable object | 拖拽終止時觸發 |
| `change.uk.nestable` | event, nestable item, action | 改變可嵌套條目時觸發 |
- UIkit 中文文檔
- 開始使用
- 初學者
- 開始使用
- 如何自定義
- 布局示例
- 開發者
- 項目結構
- Less & Sass 文件
- 創建主題
- 創建樣式
- Customizer.json
- JavaScript
- 自定義前綴
- 核心組件
- 默認
- 基礎
- 打印
- 布局類組件
- 網格
- 面板/Panel
- 塊/Block
- 文章
- 評論/Comment
- 效果/Utility
- Flex 布局
- 覆蓋/Cover
- 導航類組件
- 導航菜單
- 導航欄
- 二級導航
- 面包屑/Breadcrumb
- 分頁
- 選項卡
- 縮略圖導航/Thumbnav
- 頁面元素
- 列表
- 描述列表
- 表格
- 表單
- 常用組件
- 按鈕
- 圖標
- 關閉/Close
- 徽章/Badge
- 提示框
- 縮略圖/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 動畫
- 對比度/Contrast
- JAVASCRIPT組件
- 下拉菜單
- 模態對話框
- 抽屜/Off-canvas
- 切換器/Switcher
- 撥動/toggle
- 滾動監聽/Scrollspy
- 平滑滾動
- 附加組件
- 布局類組件
- 動態網格
- 視差網格
- 導航類組件
- 圓點導航
- 滑動導航/Slidenav
- 動態分頁
- 常用組件
- 高級表單
- 文件表單/Form file
- 密碼表單
- 選擇表單
- 占位符
- 進度條/Progress
- JAVASCRIPT組件
- 燈箱/Lightbox
- 自動完成/Autocomplete
- 日期選擇器/Datepicker
- HTML 編輯器
- 滾動條/Slider
- 滑塊集/Slideset
- 幻燈片/Slideshow
- 視差/Parallax
- 手風琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附著/Sticky
- 時間選擇器
- 工具提示/Tooltip
- 上傳