Может ли сортируемый пользовательский интерфейс jQuery обрабатывать сложные селекторы для опции элементов? - PullRequest
3 голосов
/ 27 мая 2010

У меня есть элементы списка в неупорядоченном списке, которые при двойном щелчке можно редактировать на месте с помощью редактора wysiwyg.

$('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 Ответ

3 голосов
/ 27 мая 2010

jQuery UI Sortable принимает любой селектор, но этот селектор используется для выбора элементов, которые можно сортировать при создании сортируемой, а не при начале перетаскивания. Если вы измените DOM, он все равно будет помнить, какие элементы были отсортированы при создании сортируемой.

Вы должны иметь возможность return false из sortstart, если ui.item содержит <form>, но, похоже, сейчас это не работает; вместо этого вы можете использовать это, что делает:

$('ul').sortable({
  items: '> li',
  cancel: 'li:has(form)'
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...