🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
4 messages
4 total messages Started by S Wed, 21 Mar 2012 17:21
JQuery - kolejna prośba o pomoc
#51058
Author: S
Date: Wed, 21 Mar 2012 17:21
49 lines
2721 bytes
Witam

Borykam się z tym JQ (wcześniej ograniczało się to do bardzo prostych 
rzeczy) i strasznie się motam. Mam nadzieję, że szanowni Grupowicze wybaczą 
mi kolejne pytanie.
Zrobiłem sobie powielanie rekordów tabeli z elementami formularza i mam 
teraz problem z dodawaniem i usuwaniem w pewnym szczególnym przypadku. 
Chodzi o to, że jeśli najpierw usunę bazowy rekord z którego robię .clone() 
to nie mogę siłą rzeczy później już nic dodać. Wydawało mi się, ze 
rozwiązałem problem (poniżej kod) ale w tej chwili mam tak, że jak kliknę to 
mi klonuje więcej niż jeden rekord. Jak zrobić aby clone zrobiło swoje tylko 
na jednym elemencie a nie na wszystkich o danym identyfikatorze?
A o to kod:
Tu robię clone i po prostu sprawdzam czy ten bazowy rekord jest widoczny czy 
nie. Jeśli nie to biorę z tych wcześniej skopiowanych (pewnie nakombinowałem 
niemiłosiernie)

$('#add_koszt_transportu_next').click(function(){
         var myEl = $('#koszt_dostawy_table 
tr').clone().appendTo('#koszt_dostawy_table2');
         myEl.find('input[type=text]').val('');

        if($('#koszt_dostawy_table .row_koszt_transportu').is(':visible')) {
    else {
    var myEl2 = $('#koszt_dostawy_table2 
tr').clone().appendTo('#koszt_dostawy_table2');
         myEl2.find('input[type=text]').val('');
    }

     });'

A tu kod odpowiedzialny za usuwanie

$('.unset_koszt_transportu').click(function(){
    $(this).parents('.row_koszt_transportu').hide();
    if($(this).parents('.row_koszt_transportu').is(':visible') ) {
        $("#add_koszt_transportu_next").hide('slow');
    }
    return false;
});
$('.unset_koszt_transportu').live('click',function(){

         $(this).parents('.row_koszt_transportu').remove();

      return false;
  });

z góry dziękuję za pomoc i pozdrawiam
Sławek 
Re: JQuery - kolejna prośba o pomoc
#51059
Author: S
Date: Wed, 21 Mar 2012 17:58
23 lines
1721 bytes
Pewnie na okrętkę ale poradziłem sobie tak:
$('#add_koszt_transportu_next').click(function(){

         var myEl = $('#koszt_dostawy_table 
tr').clone().appendTo('#koszt_dostawy_table2');
         myEl.find('input[type=text]').val('');

        if($('#koszt_dostawy_table .row_koszt_transportu').is(':visible')) {

}else {
    $("#koszt_dostawy_table .row_koszt_transportu").show();
     var myEl = $('#koszt_dostawy_table 
tr').clone().appendTo('#koszt_dostawy_table2');
         myEl.find('input[type=text]').val('');
      $("#koszt_dostawy_table .row_koszt_transportu").hide();

}

Mam jednak wrażenie że to dość prostackie rozwiązanie więc jeśli jakaś dobra 
dusza podpowie coś bardziej eleganckiego to będę wdzięczny.

pozdrawiam
Sławek 
Re: JQuery - kolejna prośba o pomoc
#51060
Author: Herr
Date: Wed, 21 Mar 2012 19:56
34 lines
2316 bytes
S wrote:

> Witam
> 
> Borykam się z tym JQ (wcześniej ograniczało się to do bardzo prostych 
> rzeczy) i strasznie się motam. Mam nadzieję, że szanowni Grupowicze wybaczą 
> mi kolejne pytanie.
> Zrobiłem sobie powielanie rekordów tabeli z elementami formularza i mam 
> teraz problem z dodawaniem i usuwaniem w pewnym szczególnym przypadku. 
> Chodzi o to, że jeśli najpierw usunę bazowy rekord z którego robię .clone() 
> to nie mogę siłą rzeczy później już nic dodać. Wydawało mi się, ze 
> rozwiązałem problem (poniżej kod) ale w tej chwili mam tak, że jak kliknę to 
> mi klonuje więcej niż jeden rekord. Jak zrobić aby clone zrobiło swoje tylko 
> na jednym elemencie a nie na wszystkich o danym identyfikatorze?
> A o to kod:
> Tu robię clone i po prostu sprawdzam czy ten bazowy rekord jest widoczny czy 
> nie. Jeśli nie to biorę z tych wcześniej skopiowanych (pewnie nakombinowałem 
> niemiłosiernie)

[rachu ciachu]
>     var myEl2 = $('#koszt_dostawy_table2 > tr').clone().appendTo('#koszt_dostawy_table2');

Pobierasz *wszystkie* rzędy tabelki z #koszt_dostawy_table2, klonujesz
je i dodajesz do tabelki. Ilość rzędów w tabelce rośnie coraz
szybciej...

Zamień selektor dla źródła na taki:
#koszt_dostawy_table2 > tr:last-child
powinno pomóc.


-- 
Herr C(...)a
mój e-mail? http://cerbermail.com/?YWDqT8olYO
Re: JQuery - kolejna prośba o pomoc
#51061
Author: S
Date: Wed, 21 Mar 2012 20:44
17 lines
1423 bytes
>[rachu ciachu]
>     var myEl2 = $('#koszt_dostawy_table2 > 
> tr').clone().appendTo('#koszt_dostawy_table2');

>Pobierasz *wszystkie* rzędy tabelki z #koszt_dostawy_table2, klonujesz
>je i dodajesz do tabelki. Ilość rzędów w tabelce rośnie coraz
>szybciej...

>Zamień selektor dla źródła na taki:
>#koszt_dostawy_table2 > tr:last-child
>powinno pomóc.

Faktycznie też działa, wielkie dzięki.

pozdrawiam
Sławek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads