jQuery UI Sortable可以处理items选项的复杂选择器吗?

时间:2010-05-27 02:47:29

标签: javascript jquery jquery-ui jquery-ui-sortable jeditable

我在无序列表中有列表项,双击时可以通过所见即所得的编辑器进行编辑。

$('ul.mtm_section').sortable({
  disabled: true,
  distance: 10,
  items: '> li:not(:has(form))'
});

我的目标是防止列表项在编辑时被排序 - 也就是说,一旦交换了表单元素代替内容。

不幸的是我的物品选择器不起作用。可以排序能够处理像这样的复杂选择器吗?如果没有,是否有其他聪明的方法可以禁止某些项目被排序,可能是一个回调函数?

我更愿意依赖这个可排序的选项,因为wysiwyg插件与jEditable深深嵌套,据我所知,并没有为我打开任何事件。

使用jQuery 1.4.2和jQuery UI 1.8.1

1 个答案:

答案 0 :(得分:3)

jQuery UI Sortable接受任何选择器,但选择器用于选择在创建sortable时可排序的项目 - 而不是在拖动开始时。如果更改DOM,它仍会记住在创建可排序时哪些项目是可排序的。

如果return false包含sortstart,您应该能够ui.item <form>,但这似乎现在不起作用;相反,你可以使用它,它确实:

$('ul').sortable({
  items: '> li',
  cancel: 'li:has(form)'
});