Avatar billede heyn Nybegynder
25. april 2014 - 01:54 Der er 5 kommentarer og
1 løsning

JQuery: Hvordan flytter man tabelrækker op og ned

Hej Eksperter

Jeg har prøvet at lave en tabel hvor hver række indeholder en button 'flyt op'.
Jeg har søgt efter mange jquery løsninger på nettet, men kan ikke få noget til at fungere.
Har nogen et forslag?

Venligst Christian
Avatar billede jakobdo Ekspert
25. april 2014 - 08:36 #1
Avatar billede heyn Nybegynder
25. april 2014 - 14:34 #2
Hej jakobdo

Af en el. anden grund fungerer dit forslag ikke hos mig.

Når jeg udelukkende indfører

$(".up").click(function(){
    var $elm = $(this);
    var $parent = $elm.parent();
    $parent.prev().before($parent);
});

Er det kun <td> elementerne der byttes om på. Ikke rækkerne.

Mine tabelrækker ser således ud:
<table>
...
...
  <tr id="product_6" class="productrow">
      <td>vand</td>
      <td>13</td>
      <td>Vises</td>
      <td><button id="up_2" class="up">Flyt op</button></td>
      <td><button id="down_2" class="down">Flyt ned</button></td>
  </tr>
...
...
</table>

Når jeg så gør det til en del af et XMLHttpRequest sker der slet intet selv om jeg modtager svar på mit request.

Venligst Christian
Avatar billede heyn Nybegynder
25. april 2014 - 15:07 #3
Nåe ja - <button>'s parent er jo <td>
Når jeg fjerner <button> fungerer det grundlæggende.

Men det fungerer stadig ikke når jeg placerer det inde i XMLHttpRequest'ets xmlhttp.onreadystatechange=function(){

Men requstet fungerer ellers fint og returnerer korrekt svar.

Hvad skal man i øvrigt skrive for at få parent's parent flyttet? Altså hvis jeg vil anvende <button>.

Venligst Christian
Avatar billede heyn Nybegynder
25. april 2014 - 15:16 #4
AH!

Man skal flytte

var $elm = $(this);
var $parent = $elm.parent();

uden for

xmlhttp.onreadystatechange=function(){
...
...
}
Avatar billede heyn Nybegynder
25. april 2014 - 15:31 #5
Ok - Løste selv det sidste.

var $button = $(this);
var $td = $button.parent();
var $tr = $td.parent();

Og så

xmlhttp.onreadystatechange=function(){
  if (xmlhttp.readyState==4){
...
...
      $tr.prev().before($tr);
...
...
  }
}
Avatar billede jakobdo Ekspert
28. april 2014 - 14:16 #6
Godt du fandt en løsning. :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester