Size: a a a

2020 November 09

КС

Кирилл Спасибович... in Svelte [svelt]
а почему не сделать переменную с тремя состояниями :
'asc', 'desc', '' ?
источник

VF

Vitaliy Fain in Svelte [svelt]
не понял
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и сделать class={sorting}
источник

КС

Кирилл Спасибович... in Svelte [svelt]
ну вместо этого status trend
источник

КС

Кирилл Спасибович... in Svelte [svelt]
ваще не понятно зачем писать и читать в аттрибуты
источник

VF

Vitaliy Fain in Svelte [svelt]
потому что данные должны сохранятся временно
источник

КС

Кирилл Спасибович... in Svelte [svelt]
т.е. это типа включаемая сортировка для каждого из столбцов ?
источник

VF

Vitaliy Fain in Svelte [svelt]
да
источник

VF

Vitaliy Fain in Svelte [svelt]
и данные вскоре будут приниматься из localStorage, от сюда и небольшое нагромождение
источник

VF

Vitaliy Fain in Svelte [svelt]
так как будет динамическое добавление столбцов
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Vitaliy Fain
так как будет динамическое добавление столбцов
здесь был кривой код
источник

VF

Vitaliy Fain in Svelte [svelt]
// не знаю зачем выставлять включено в 1 если trend DESC %)
источник

VF

Vitaliy Fain in Svelte [svelt]
данные потому что по умолчанию приходят отсортированы по первому столбцу
источник

КС

Кирилл Спасибович... in Svelte [svelt]
ну можно через $: их сразу сортировать как только изменятся настройки
источник

VF

Vitaliy Fain in Svelte [svelt]
у меня ваш код не работает при клике не меняется стрелочка
источник

КС

Кирилл Спасибович... in Svelte [svelt]
не понимаю просто если status отвечает за то применяется ли эта сортировка, а столбцов по которым сортируется не может быть > 1, то зачем включать на всех остальных столбцах с DESC сортировкой её
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и ничего полезного в коде не видно? подхода там который зависит от стейта и всего такого ?
источник

VF

Vitaliy Fain in Svelte [svelt]
через доллар знаю просто пока не нужно, это заготовка
источник

VF

Vitaliy Fain in Svelte [svelt]
сейчас смотрю
источник

КС

Кирилл Спасибович... in Svelte [svelt]
<script>
 const sortHeader = [
   {id: 1, sort: "select", trend: "desc", name: "#"},
   {id: 2, sort: "name", trend: "asc", name: "Name"},
   {id: 3, sort: "comment", trend: "asc", name: "Comment"},
 ];
 let activeHeaderId = null;
 let activeHeaderSorting = false;

 function handler_click({target: t}) {
   if(!t.matches('th')) return;
   const id = +t.dataset.id;
   if(activeHeaderId !== id) {
     activeHeaderId = id;
     const h = sortHeader.find(h => h.id === id);
     activeHeaderSorting = h.trend === 'desc' ? true : false;
   }
   else {
     activeHeaderSorting = !activeHeaderSorting;
   }
 }
</script>

<tr on:click={handler_click}>
 {#each sortHeader as el}
   <th
     data-id={el.id}
     class:active={activeHeaderId === el.id}
     class:desc={activeHeaderId === el.id && activeHeaderSorting}
     class:asc={activeHeaderId === el.id && !activeHeaderSorting}
   >{el.name}</th>
 {/each}
</tr>

<pre>
{JSON.stringify(sortHeader, null, 2)}
</pre>

<style>
 th {
   border: solid 1px gray;
   padding: .3rem;
   -moz-user-select: none;
   user-select: none;
 }

 th {
   cursor: pointer;
 }

 th:after {
   content: "\25BE";
   position: relative;
   float: right;
   bottom: 1px;
   opacity: 0;
 }

 th.active.desc:after {
   content: "\25BE";
   opacity: 1;
 }

 th.active.asc:after {
   content: "\25B4";
   opacity: 1;
 }

</style>
источник