【问题标题】:Can jQuery UI's Sortable handle complex selectors for the items option?jQuery UI 的 Sortable 可以处理项目选项的复杂选择器吗?
【发布时间】:2010-05-27 02:47:28
【问题描述】:

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

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

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

很遗憾,我的项目选择器无法正常工作。 sortable 能够处理像这样的复杂选择器吗?如果没有,是否还有其他巧妙的方法可以禁用某些项目的可排序性,也许是回调函数?

我更愿意依赖这个可排序的选项,因为 wysiwyg 插件与 jEditable 深度嵌套,据我所知,它不会打开任何事件让我挂钩。

使用 jQuery 1.4.2 和 jQuery UI 1.8.1

【问题讨论】:

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


    【解决方案1】:

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

    如果ui.item 包含<form>,您应该可以从sortstartreturn false,但这现在似乎不起作用;相反,您可以使用它,它可以:

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

    【讨论】:

    • 谢谢!我知道取消,但是当我尝试它时,我的代码中一定有一个错误。这对我有用。作为旁注,我想知道在其他情况下,sortable 是否会受益于强制 sortable 使用“live”jquery 事件挂钩的选项,例如 liveItemsSelector: true
    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多