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
Author: S
Date: Wed, 21 Mar 2012 17:21
Date: Wed, 21 Mar 2012 17:21
49 lines
2721 bytes
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
Author: S
Date: Wed, 21 Mar 2012 17:58
Date: Wed, 21 Mar 2012 17:58
23 lines
1721 bytes
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
Author: Herr
Date: Wed, 21 Mar 2012 19:56
Date: Wed, 21 Mar 2012 19:56
34 lines
2316 bytes
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
Author: S
Date: Wed, 21 Mar 2012 20:44
Date: Wed, 21 Mar 2012 20:44
17 lines
1423 bytes
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