jQuery - сделать все ячейки таблицы перетаскиваемыми, кроме первой в каждой строке - PullRequest
1 голос
/ 07 января 2011

Я не могу понять, как сделать все ячейки таблицы перетаскиваемыми, кроме первой ячейки в каждой строке.Я подумал, что это может сработать:

$("#tableid tbody tr td:not(:first)").draggable({
    connectToSortable: "#sortable",
    helper: "clone",
    revert: "invalid"
});

Или вот это:

$("#tableid tbody tr td").not("#tableid tbody tr td:first").draggable({
    connectToSortable: "#sortable",
    helper: "clone",
    revert: "invalid"
});

Но оба просто мешают перетаскивать первую ячейку первого рядаНе каждый ряд ...

Есть идеи?

Ответы [ 2 ]

1 голос
/ 07 января 2011

Чтобы выбрать все, кроме первого td в строке , вы хотите:

$('#tableid tbody tr').find('td:gt(0)')

Проверьте это здесь: http://jsfiddle.net/KsUCj/

Вызывая :first, вы находите первый элемент во всем наборе.

Кроме того, если вы рассматриваете первую ячейку в каждой строке как особенную, это звучит так, как будто вы на самом деле хотите эту разметку:

<table><thead><tr>
  <th></th>
  <th scope="col">Column Head 1</th>
  <th scope="col">Column Head 2</th>
</tr></thead><tbody><tr>
  <th scope="row">Row Head</th>
  <td>Row Cell 1</td>
  <td>Row Cell 2</td>
</tr><tr>
  <th scope="row">Row Head</th>
  <td>Row Cell 1</td>
  <td>Row Cell 2</td>
</tr></tbody></table>

Мало того, что это более семантически, и предоставляет вам лучшие хуки для вашего CSS стиля стилей заголовков строк, но вы не столкнулись бы с этой проблемой, так как tbody tr td выбрал бы все, кроме первого столбца уже.

0 голосов
/ 07 января 2011

Разве это не должно быть 'tr: first td' в отличие от 'tr td: first'?

...