[jquery] verplaatsen van tabel rij tussen tabellen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 12:02

skate master

Autodesk Educator Expert

Topicstarter
mensen,

Ik ben bezig met een site waarop Items toegekend kunnen worden aan een persoon.
Mijn idee is om dit door middel van twee tabellen te doen.
Tabel 1: beschikbare items
Tabel 2: geselecteerde items.

Het idee is dan dat een beschikbaar item verplaatst wordt (middels Jquery) naar de tabel geselecteerd door middel van het plaatsen van een vinkje in een checkbox.

Met mijn basis Jquery skills en google als hulp dacht ik dit wel voor elkaar te krijgen. Helaas.
Het verplaatsen van de items van beschikbaar naar geselecteerd lukt.
Echter het terug plaatsen van een item krijg ik niet voor elkaar.

Waarschijnlijk maak ik ergens een hele simpele denk fout, maar ik zie het niet meer.
Wie o wie geeft mij het zetje dat ik nodig heb?

Ik heb even een voorbeeldje in elkaar ge-fiddled: https://jsfiddle.net/mqgc2n81/6/

Relevante code:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<h4>
Beschikbare items
</h4>
<table id="beschikbaar">
  <thead>
    <tr><th>#</th><th>Item naam</th></tr>
  </thead>
  <tbody>
    <tr><td><input type="checkbox" name="items[]" value="1" class="chkBeschikbaar"></td><td>Item 1</td></tr>
    <tr><td><input type="checkbox" name="items[]" value="2" class="chkBeschikbaar"></td><td>Item 2</td></tr>
    <tr><td><input type="checkbox" name="items[]" value="3" class="chkBeschikbaar"></td><td>Item 3</td></tr>
    <tr><td><input type="checkbox" name="items[]" value="4" class="chkBeschikbaar"></td><td>Item 4</td></tr>
    <tr><td><input type="checkbox" name="items[]" value="5" class="chkBeschikbaar"></td><td>Item 5</td></tr>
  </tbody>
</table>
<h4>
Geselecteerde items
</h4>
<table id="geselecteerd">
  <thead>
    <tr><th>#</th><th>Item naam</th></tr>
  </thead>
  <tbody>
    
  </tbody>
</table>

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
$('.chkBeschikbaar').change(function(){
            if($(this).is(':checked')){
                // item verplaatsen naar geselecteerd
                $(this).closest("tr").clone().appendTo("#geselecteerd tbody");
                $(this).closest("tr").remove();
            } else {
                // item verplaatsen naar beschikbaar
                $(this).closest("tr").clone().appendTo("#beschikbaar tbody");
                $(this).closest("tr").remove();
            }
});

Beste antwoord (via skate master op 23-03-2016 14:27)


  • sunflame
  • Registratie: Mei 2002
  • Laatst online: 09-10 19:59

Alle reacties


Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

hier stond onzin :P

[ Voor 92% gewijzigd door TheRookie op 23-03-2016 14:18 . Reden: verkeerd gelezen ]


Acties:
  • +1 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Je moet de rows niet clonen en daarna deleten maar gewoon alleen appenden.
Dan behoud je ook het change event op de rows.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • sunflame
  • Registratie: Mei 2002
  • Laatst online: 09-10 19:59

Acties:
  • +1 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 12:02

skate master

Autodesk Educator Expert

Topicstarter
Jaaap en sunflame bedankt voor het duwtje in de juiste richting.
Gewoon een hele ochtend verkloot met dit gedoe, terwijl de oplossing logisch en voor de hand liggend is.