Jump to content
php.lv forumi
  • 0

Jquery clone


Question

Posted (edited)

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

9 answers to this question

Recommended Posts

  • 0
Posted (edited)

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
  • 0
Posted (edited)

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
  • 0
Posted (edited)

$('.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
  • 0
Posted
pirmajā .rate_ man ir ievadīti dati, tie arī tiek noklonēti un tas nav labi.

 

Bet kur ir problēma ar JS tos datus uzstādīt uz defaultajiem uzreiz pēc klonēšanas?

  • 0
Posted

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);

}

  • 0
Posted (edited)

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
  • 0
Posted (edited)

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

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...