Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Перемещение столбцов таблицы, текст всегда в первом столбце (https://javascript.ru/forum/jquery/82226-peremeshhenie-stolbcov-tablicy-tekst-vsegda-v-pervom-stolbce.html)

Dolf 05.04.2021 21:12

Все столбцы перемещаются, но поясняющие названия только в первом столбце. Если его переместить то и названия "уедут" в другое место, столбец же окажется например в середине (с поясняющими названиями). Так вот надо что бы при перемещении столбцов поясняющие названия всегда были в первом столбце, как на скриншоте. https://prnt.sc/11511r7
То-есть перемесил столбцы местами данные, а поясняющие название опять в первом столбце и так всегда, вне зависимости от перемещения столбцов.

voraa 05.04.2021 21:59

Цитата:

Сообщение от рони
voraa,
https....examples.html

http://dbrink.github.io/sorttable/examples.html
Я этот адрес не вручную пишу, а копирую из адресной строки

Этот же адрес указан и тут
https://github.com/dbrink/sorttable

voraa 05.04.2021 22:02

Цитата:

Сообщение от Dolf
То-есть перемесил столбцы местами данные, а поясняющие название опять в первом столбце и так всегда, вне зависимости от перемещения столбцов.

Я тоже ничего не понимаю.

Dolf 05.04.2021 22:07

Ребята, ну посмотрите, пожалуйста, на https://auto.ru/ добавьте пару машин в сравнение и все понятно будет. Я просто уже не знаю как написать.

рони 05.04.2021 22:34

Dolf,
что вам мешает создать создать надписи в отдельном столбце?

Dolf 05.04.2021 22:45

Ну скажем так, нельзя в отдельном (от слова совсем). Конечно я бы сделал в отдельном, но надо как на авто.ру) По этому прошу натолкнуть примером как всегда находить этот первый столбец и именно там показывать статичные записи, а везде скрывать.

рони 05.04.2021 23:05

Dolf,
тогда кешируйте надписи и по событию stop перемешайте их через 51 миллисекунду в первую ячейку

рони 05.04.2021 23:08

Dolf,
для структуры представленной вами выше это будет так ...
$(function() {
var text = [...document.querySelectorAll('#ex4 tr td:first-child')].map(({childNodes})=> [...childNodes].slice(0,2));
$('#ex4').sorttable({
    helperCells: null,
    placeholder: 'placeholder',
    stop: function( event, ui ) {
        setTimeout(_=> document.querySelectorAll('#ex4 tr td:first-child').forEach((td,i) => td.prepend(...text[i])), 130)

    }
}).disableSelection();
});

voraa 06.04.2021 07:12

Цитата:

Сообщение от Dolf
Так вот надо что бы при перемещении столбцов поясняющие названия всегда были в первом столбце, как на скриншоте. https://prnt.sc/11511r7

Цитата:

Сообщение от Dolf
Ребята, ну посмотрите, пожалуйста, на https://auto.ru/

Я не знаю, где там смотреть.
Приведите пример таблицы из 3-4 столбцов.

voraa 06.04.2021 07:23

Цитата:

Сообщение от Dolf (Сообщение 535253)
По этому прошу натолкнуть примером как всегда находить этот первый столбец и именно там показывать статичные записи, а везде скрывать.

Первый столбец находится
let firstcolumn = table.querySelectorAll('tr>*:first-child')


Т.е. надписи есть во всех столбцах, но показывать их нужно только в первом?
Тогда так можно
<style>
#tb td:not(:first-child)>.nadpis {
	visibility: hidden;
}
</style>
<body>
<table id=tb>
	<tr>
		<td><span class='nadpis'>Line1</span><br>1-1<td>
		<td><span class='nadpis'>Line1</span><br>1-2<td>
		<td><span class='nadpis'>Line1</span><br>1-3<td>
	</tr>
	<tr>
		<td><span class='nadpis'>Line2</span><br>2-1<td>
		<td><span class='nadpis'>Line2</span><br>2-2<td>
		<td><span class='nadpis'>Line2</span><br>2-3<td>
	</tr>
	<tr>
		<td><span class='nadpis'>Line3</span><br>3-1<td>
		<td><span class='nadpis'>Line3</span><br>3-2<td>
		<td><span class='nadpis'>Line3</span><br>3-3<td>
	</tr>
</table>
</body>


Часовой пояс GMT +3, время: 05:27.