我在无序列表中有列表项,双击时可以通过所见即所得的编辑器进行编辑。
$('ul.mtm_section').sortable({
disabled: true,
distance: 10,
items: '> li:not(:has(form))'
});
我的目标是防止列表项在编辑时被排序 - 也就是说,一旦交换了表单元素代替内容。
不幸的是我的物品选择器不起作用。可以排序能够处理像这样的复杂选择器吗?如果没有,是否有其他聪明的方法可以禁止某些项目被排序,可能是一个回调函数?
我更愿意依赖这个可排序的选项,因为wysiwyg插件与jEditable深深嵌套,据我所知,并没有为我打开任何事件。
使用jQuery 1.4.2和jQuery UI 1.8.1
答案 0 :(得分:3)
jQuery UI Sortable接受任何选择器,但选择器用于选择在创建sortable时可排序的项目 - 而不是在拖动开始时。如果更改DOM,它仍会记住在创建可排序时哪些项目是可排序的。
如果return false
包含sortstart
,您应该能够ui.item
<form>
,但这似乎现在不起作用;相反,你可以使用它,它确实:
$('ul').sortable({
items: '> li',
cancel: 'li:has(form)'
});