我是here,但问题与我最初的想法不同。
我使用的CMS已经为可排序组设置了选项,我不想更改它们。我想要做的是排除<div>
class
"not-sortable"
的{{1}}可排序。
CMS中包含的当前设置
$('.meta-box-sortables').sortable({
placeholder: 'sortable-placeholder',
connectWith: '.meta-box-sortables',
items: '.postbox',
handle: '.hndle',
cursor: 'move',
delay: ( isMobile ? 200 : 0 ),
distance: 2,
tolerance: 'pointer',
forcePlaceholderSize: true,
helper: 'clone',
opacity: 0.65,
});
如上所述,我已将其中一个'postbox'
部分设为'not-sortable'
。然后在自定义.js
文件中,我有以下内容。
我的自定义设置
jQuery(function($) {
$(".meta-box-sortables").sortable({
items : ':not(.not-sortable)'
});
});
然后删除了移动任何先前可拖动部分的能力。因此,我似乎重写了items:
选项。
有没有办法可以在不覆盖原始设置的情况下做到这一点,或者我的思路错误在这里?
答案 0 :(得分:0)
您可以使用带有对象的option方法的形式:
jQuery(function($) {
$(".meta-box-sortables").sortable("option", {
items: ":not(.not-sortable)"
});
});
这样,您将保留未指定的设置。
详细说明先前存储在item
选项中的选择器,您遗憾的是必须再次指定它:
items: ".postbox:not(.not-sortable)"
连接到上一个值是可行的:
items: $(".meta-box-sortables").sortable("option", "items")
+ ":not(.not-sortable)"
如果items
包含更复杂的选择器(例如multiple selector),则会失败:
items: ".postbox, .other", // Whoops.