05-selectable (options)方法
11.3.1 selectable (options)
方法
selectable (options)
方法声明了一个包含可选择元素的HTML元素。 options
参数指定了选择时的行为。
1.管理已选元素
selectable (options)
方法作用的元素的所有后代元素都是可选择的,同时也都继承了 ui-selectee
的CSS类名(无论是否已经被选中)。使用表11-1中列出的选项可以过滤这些后代元素以精确指定可选择元素的范围。
| 选项 | 功能 |
| :----- | :----- | :----- | :----- |
| options.disabled
| 当设置为 true
时,禁用选择功能。直到使用 selectable
("enable")
方法重新激活这一功能,用户才能再选择元素 |
| options.filter
| 一个选择器,指定哪些元素可以成为选区的一部分。这些元素会继承 ui-selectee
类,并成为可选择的元素。默认情况下,选择器为 "*"
(即所有后代元素都是可选择的) |
| options.cancel
| 一个选择器指定某些元素将不能成为选区的起点(但仍然可以成为选区的一部分) |
| options.distance
| 指定一个距离值(以像素为单位),鼠标移动达到此距离后才能被认定为选择行为。此选项在有些情况下非常实用,例如避免简单的单击被解释为群体多选。默认值为0,此时只需对某个元素进行简单的单击即可选择或取消选择它 |
2.管理已选元素事件
使用表11-2中列出的选项可以管理已选元素发生的事件,例如单个元素的选择或取消选择。后文中的第一个用例演示了这些事件在页面上发生的时间顺序。
| 选项 | 功能 |
| :----- | :----- | :----- | :----- |
| options.start
| 当鼠标每次单击使用了 seletable (options)
方法的元素时,都会调用 start (event)
方法,然后再开始选择序列(即在之前选择的基础上添加新选或取消选择的元素) |
| options.stop
| 当鼠标按键松开时会调用 stop (event)
方法。此时选择序列已经完成 |
| options.selecting
| 当选择了一个新元素且鼠标按键还没有松开时(即此次选择序列还没有调用 stop ()
方法时)会调用 selecting
(event, ui)
方法。被选中的DOM元素会记录为 ui.selecting
|
| options.unselecting
| 当取消选择某个元素且鼠标按键还没有松开时(即此次选择序列还没有调用 stop ()
方法时)会调用 unselecting
(event, ui)
方法。被取消选择的DOM元素会记录为 ui.unselecting
|
| options.selected
| 当鼠标按键松开时,当前选择序列中每一个被选中的元素都会调用 selected (event, ui)
方法。而之前被选过的元素不会触发调用(即便它们还是保持了被选中的状态)。新增的被选中的DOM元素会记录为 ui.selected
|
| options.unselected
| 当鼠标按键松开时,当前选择序列中每一个被取消选择的元素都会调用 unselected (event,ui)
方法。之前已经取消选择的元素不会触发调用(即便它们仍然没被选中)。这些被取消选择的DOM元素会记录为 ui.unselected
|
我们将术语“选择序列”定义为从 options.start
到 options.stop
过程中调用的所有方法。在这每一个方法中, "this"
变量指向的是调用 selectable (options)
方法的元素(即拥有 ui-selectable
CSS类的元素)。