Jump to content
php.lv forumi
  • 0

Jquery clone


reiniger

Question

Sveiki

Gribu panakt lietu ka pievienojas tabulai jauns tr.

<table class="galvenatabula" id="rate_table" cellspacing="0" cellpadding="0">
   <tr class="head">
       <td>Type</td>
       <td> </td>
       <td>Nett</td>
       <td>Sale</td>
       <td>Profit</td>
   </tr>
   <tr class="rate_">
       <td><input name="ri_type[]" /></td>
       <td>
       <select name="ri_prop[]">
           <option></option>
           <option value="1">1</option>
           <option value="2">2</option>
       </select>
       </td>
       <td><input name="ri_net[]" /></td>
       <td><input name="ri_sel[]" /></td>
       <td>+100</td>
   </tr>
</table>

<a id="add_RateIdea" class="pointer_">add</a>

un scripts

<script>
$('#add_RateIdea').click(function(){                                      
$('.rate_').clone().appendTo("#rate_table");    
});
</script>

Problema ko jau rakstot zināju kad tiek clonēti visi tr ar clasi .rate_ ar katru nākošo spiedienu dubultojas tas neder.

 

Kā panākt ka var tikai vienu pievienot?

 

un vēl viena lieta kā panākt ka tiek automātiski aprēķināts Profit = sel - net katram clone elementam?

Edited by reiniger
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Atrisinaju problēmu ar pievienot tikai vienu.

<tr class="rate_ firstone">...

un Jquery

<script>
$('#add_RateIdea').click(function(){                                      
$('.firstone').clone().removeClass('firstone').appendTo("#rate_table");    
});
</script>

un vēl viena lieta kā panākt ka tiek automātiski aprēķināts Profit = sel - net katram clone elementam?

Kā panākt ka šis automātiski strādā uz clonētajiem elementiem?

Edited by reiniger
Link to comment
Share on other sites

  • 0

Mana risinājumā ir viena nepilnība. Ja esmu pirmajā tr elementā savadījis datus, tad tie ar tiek noklonēti!

 

Kā panēkt ka clonē ar tukšiem input laukiem?

 

Atrisināju šo problēmu:

.firstone {display:none}

Un pievienoju vienu tukšu bez šīs klases.

 

Un tagad palicies pēdējā lieta ko nezinu pat kādā virzienā skatīties, lai man profit aprēķinātos no ri_sel[] - ri_net[], katrai tr rindiņai atsevišķi!

Edited by reiniger
Link to comment
Share on other sites

  • 0

$('.rate_:first')

Bet tad jau šādā veidā, ja pirmajā .rate_ man ir ievadīti dati, tie arī tiek noklonēti un tas nav labi.

Savukārt profit aprēķini, tad kad pievieno jaunu tr klonu.

Kā tieši šo tu biji domājis? Ne jau tā ka katru pēdējo tikai aprēķina kad tiek pievinots jauns! Kas notiktos ja es gribētu kādu no pirmajiem sel palabot vai tad arī tur profits tiktu aprēķināts?

Edited by reiniger
Link to comment
Share on other sites

  • 0

Nelasīju topiku, bet pats saskāros ar līdzīgu problēmu.

 

Uztaisi tagu ar visiem defaultajiem parametriem, defaultajiem stiliem... visu defaulto. Un uzliec: display: none.

 

Tad, piemēram, ja vajag parādīt trīs tādus elementus:

 

 

var default_element;

default_element = $('#default_element').show();

for (var i = 0; i < 3; ++i) {

   $('#place_for_elements').append(default_element);

}

Link to comment
Share on other sites

  • 0

Atrisinaju problēmu ar pievienot tikai vienu.

<tr class="rate_ firstone">...

un Jquery

<script>
$('#add_RateIdea').click(function(){                                      
$('.firstone').clone().removeClass('firstone').appendTo("#rate_table");    
});
</script>

Šāds mans risinājums, ja es table pievienoju vēlvienu td ar <a onclick='delete()'></a>

Kādā veidā panākt ka šo clona rindiņu (<tr><td>...</tr>) var dzēst ar visiem datiem?

Edited by reiniger
Link to comment
Share on other sites

  • 0

Pirmkārt jau iemācies lietot jquery delegate un neliec HTML ar js eventiem.

Respektīvi uzliec tabulai, lai uz tās elementiem strādātu events

 


$('#table_id').delegate('.col1','click',function(){
 //sheit darām, ko gribam ar uzspiesto elementu, kuram var piekļūt caur $(this)
});

 

 

Neliels paraugs kā uztaisīt dinamisku tabulu ar jquery: http://jsfiddle.net/MNxPk/

Edited by codez
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...