jQuery UI Sortable - как включить / исключить несколько "элементов"?

у меня есть рабочий пример сортируемой функции jQuery UI. Я применяю его к таблице HTML для перетаскивания и сортировки строк таблицы. Он отлично работает, за исключением того, что я хочу исключить определенные классы строк из сортировки. С помощью items параметр, я могу успешно исключить один класс ("list-button-bar" class), но я не могу на всю жизнь понять синтаксис того, как исключить более одного класса. Например, я хочу исключить <th> и другие классы <tr>.

это, вероятно, один из тех, которые есть в документации, но я еще недостаточно знаком с jQuery UI, чтобы знать, даже что искать.

вот рабочий код:

<script>
    $(function() {
      $("#applications_list tbody.list-tbody").sortable({
        items: "tr:not(.list-button-bar)",
        cursor: 'crosshair'
      });
      $("#applications_list tbody.list-tbody").disableSelection();

    });
</script>

3 ответов


вы пробовали использовать запятую? The items опция принимает селектор jQuery:

  $("#applications_list tbody.list-tbody").sortable({
    items: "tr:not(.list-button-bar), :not(th)", // Excludes <tr>s without a class and <th>s
    cursor: 'crosshair'
  });

для исключения нескольких классов TR используйте:

$("#applications_list tbody.list-tbody").sortable({
        items: "tr:not(.list-button-bar,.other-class1,.other-class2)",
        cursor: 'crosshair'
});

в jQuery UI 1.8 используйте следующее:

$("#applications_list tbody.list-tbody").sortable({
    // Excludes <tr>s without a class and <th>s
    filter: "tr:not(.list-button-bar), :not(th)"
});