可排序列表是列表的扩展,可以对列表进行排序.
让我们来看一下可排序列表元素的布局结构:
- <!-- 加在列表区上额外的“sortable”类 -->
- <div class="list-block sortable">
- <li>
- <div class="item-content">
- <div class="item-media">...</div>
- <div class="item-inner">...</div>
- </div>
- <!-- 可排序句柄元素 -->
- <div class="sortable-handler"></div>
- </li>
- </div>
其中:
sortable-handler
- 可拖拽元素("draggable" element)(默认隐藏),允许你通过它来调整列表顺序使列表变成可排序列表视图十分简单,只需要给列表区加上“sortable”类,并在列表元素<li>中加入“sortable-handler”元素作为其直接子元素
在拥有可排序列表之后,我们需要某种方法来开启或者关闭排序功能。
可以通过在链接中设置特定的类和data属性来开启或者关闭排序功能:
将"open-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现开启排序功能
将"close-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现关闭排序功能
将"toggle-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现切换(开启/关闭)排序功能
如果在应用中有多个可排序列表,你需要在以上元素中加入data-sortable=".sortable"属性,以CSS选择器对应相应的可排序列表
- <div class="content-block">
- <!-- 我们在data-sortable属性中指定目标可排序列表 -->
- <p><a href="#" data-sortable=".sortable" class="open-sortable">Enable sortable</a></p>
- <p><a href="#" data-sortable=".sortable" class="close-sortable">Disable sortable</a></p>
- <p><a href="#" data-sortable=".sortable" class="toggle-sortable">Toggle sortable</a></p>
- </div>
- <!-- 可排序列表 -->
- <div class="list-block sortable">
- <ul>
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-f7"></i></div>
- <div class="item-inner">
- <div class="item-title">Item 1</div>
- <div class="item-after">$10</div>
- </div>
- </div>
- <!-- 可排序句柄 -->
- <div class="sortable-handler"></div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-f7"></i></div>
- <div class="item-inner">
- <div class="item-title">Item 2</div>
- <div class="item-after">$20</div>
- </div>
- </div>
- <div class="sortable-handler"></div>
- </li>
- ...
- </ul>
- </div>
可以通过恰当的App方法:
myApp.sortableOpen(sortableContainer) - 在指定的可排序列表开启排序功能
myApp.sortableClose(sortableContainer) - 在指定的可排序列表关闭排序功能
myApp.sortableToggle(sortableContainer) - 在指定的可排序列表切换(开启/关闭)排序功能
- <p><a href="#" class="open">Enable sortable</a></p>
- <p><a href="#" class="close">Disable sortable</a></p>
- <p><a href="#" class="toggle">Toggle sortable</a></p>
- var myApp = new Framework7();
- var $$ = Dom7;
- $$('.open').on('click', function () {
- myApp.sortableOpen('.sortable');
- });
- $$('.close').on('click', function () {
- myApp.sortableClose('.sortable');
- });
- $$('.toggle').on('click', function () {
- myApp.sortableToggle('.sortable');
- });
事件(Event) | 目标(Target) | 说明(Description) |
---|---|---|
open | 可排序列表<div class="list-block sortable"> | 当开启排序功能时触发 |
close | 可排序列表<div class="list-block sortable"> | 当关闭排序功能时触发 |
sort | 列表项目<li> | 当用户释放正在排序的列表项目(<li>)且该项目的顺序改变时触发 |