Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] usuwanie bloku
shpaque
post 15.06.2018, 11:40:16
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Jak to bywa, kolejny temat - ten powinien pójść łatwo mam nadzieję.

skrypt mający na celu usunąć pewien blok jest napisany analogicznie do tego co zadzialalo w przypadku childow tego bloku:

  1. // Skrypt usuwający rozdział
  2. function removeMain(main) {
  3. var catNumber = $(main).data('mainCat');
  4.  
  5. $('#cat' + catNumber).find('.row rozdzial:last-child').not('.row rozdzial:first-child').remove();
  6. return false;
  7. }


wycinek html:

  1. <div id="cat0">
  2. <div class="row rozdzial" style="margin-bottom: 5px;">
  3. <div class="col-sm-8">
  4. <div class="form-group">
  5. <label>Tytuł rozdziału</label>
  6. <input class="form-control text-center" type="text" name="mainTitle[]" value="Spis treści Katalog Brunner 2017" required />
  7. </div>
  8. </div>
  9. <div class="col-sm-2">
  10. <div class="form-group">
  11. <label>Strona rozdziału</label>
  12. <input class="form-control text-center" type="text" name="mainPage[]" value="3" required />
  13. </div>
  14. </div>
  15. <div class="col-sm-1">
  16. <div class="form-group">
  17. <label>Usuń rozdział</label>
  18. <button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-main-cat="0" onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button>
  19. </div>
  20. </div>
  21. <div class="col-sm-1">
  22. <div class="form-group">
  23. <label>Dodaj rozdział</label>
  24. <button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="0" data-row-count="15" onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button>
  25. </div>
  26. </div>
  27. </div>


Ten post edytował shpaque 15.06.2018, 12:22:26
Go to the top of the page
+Quote Post
trueblue
post 15.06.2018, 12:16:42
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A "rozdzial", to selektor czego?
Kiedy poprawisz, to możesz te dwa selektory zamienić na jeden.


--------------------
Go to the top of the page
+Quote Post
shpaque
post 15.06.2018, 12:19:50
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


juz wkleilem caly blok powyzej z www
Go to the top of the page
+Quote Post
trueblue
post 15.06.2018, 12:30:29
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nie jest mi to potrzebne.
Do czego odnosi się selektor "rozdzial"? To jest pytanie do Ciebie.


--------------------
Go to the top of the page
+Quote Post
shpaque
post 15.06.2018, 12:50:53
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


do css
Go to the top of the page
+Quote Post
trueblue
post 15.06.2018, 13:05:46
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Ten selektor do niczego nie kieruje. Pogłówkuj trochę.


--------------------
Go to the top of the page
+Quote Post
athabus
post 15.06.2018, 14:35:33
Post #7





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Polecam console.log() + odpalenie konsoli w chromie i wyjście od ogólnego elementu typu console.log($('#cat'... )), jak działa to dodajesz kolejny selektor/funkcję filtrującą etc. - szybko znajdziesz miejsce w którym selektor przestaje działać bo nic nie zwraca. To najprostszy sposób znalezienia takich błędów. Trublue już Ci wskazał miejsce błędu, ale na przyszłość Ci się przyda.

Ten post edytował athabus 15.06.2018, 14:35:44
Go to the top of the page
+Quote Post
shpaque
post 18.06.2018, 11:46:24
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


ok, zrobiłem tak po prostu:

  1. // Skrypt usuwający rozdział
  2. function removeMain(main) {
  3. var catNumber = $(main).data('mainCat');
  4.  
  5. $('#cat' + catNumber).find('.row').not('.rozdzial:first-child', '#cat' + catNumber + 'main0').remove();
  6. return false;
  7. }


wyrzuca mi wszystkie poza pierwszym. chcialbym zeby jeszcze w pierwszym nie wywalal mi tego (co jest w nawiasie, ale nie dziala)

  1. '#cat' + catNumber + 'main0'


juz nie bede sie bawil bo nie ma czasu na wywalanie ostatniego bo po prostu nei wiem jak to zrobic i tak wywala wszystkie albo zadnego - ale zeby ten pierwszy zestaw zostawil

@EDIT

jeszcze raz przytocze kod dla jasnosci:

  1. <div id="cat<?php echo $i; ?>">
  2. <?php for ($x = 0; $x < $countMains; $x++): ?>
  3. <?php $countLinks = count($c -> catalog[$i] -> main[$x] -> link); ?>
  4. <div class="row rozdzial">
  5. <div class="col-sm-8">
  6. <div class="form-group">
  7. <label>Tytuł rozdziału</label>
  8. <input class="form-control text-center" type="text" name="mainTitle[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> title; ?>" required />
  9. </div>
  10. </div>
  11. <div class="col-sm-2">
  12. <div class="form-group">
  13. <label>Strona rozdziału</label>
  14. <input class="form-control text-center" type="text" name="mainPage[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> page; ?>" required />
  15. </div>
  16. </div>
  17. <div class="col-sm-1">
  18. <div class="form-group">
  19. <label>Usuń rozdział</label>
  20. <button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-main-cat="<?php echo $i; ?>" data-main-row="<?php echo $x; ?>" onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button>
  21. </div>
  22. </div>
  23. <div class="col-sm-1">
  24. <div class="form-group">
  25. <label>Dodaj rozdział</label>
  26. <button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="<?php echo $i; ?>" data-row-count="<?php echo $countMains; ?>" onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button>
  27. </div>
  28. </div>
  29. </div>
  30.  
  31. <div id="<?php echo 'cat'.$i.'main'.$x; ?>">
  32. <?php for ($y = 0; $y < $countLinks; $y++): ?>
  33. <?php if ($y < 1): ?>
  34. <div class="row">
  35. <div class="col-sm-8">
  36. <input class="form-control text-center" type="text" name="linkTitle[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> link[$y] -> title; ?>" required />
  37. </div>
  38. <div class="col-sm-2">
  39. <input class="form-control text-center" type="text" name="linkPage[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> link[$y] -> page; ?>" required />
  40. </div>
  41. <div class="col-sm-1">
  42. <button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat="<?php echo $i; ?>" data-row-main="<?php echo $x; ?>" onclick="return removeRow(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button>
  43. </div>
  44. <div class="col-sm-1">
  45. <button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="<?php echo $i; ?>" data-row-main="<?php echo $x; ?>" onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button>
  46. </div>
  47. </div>
  48. <?php else: ?>
  49. <div class="row" style="margin-bottom: 3px;">
  50. <div class="col-sm-8">
  51. <input class="form-control text-center" type="text" name="linkTitle[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> link[$y] -> title; ?>" required />
  52. </div>
  53. <div class="col-sm-2">
  54. <input class="form-control text-center" type="text" name="linkPage[]" value="<?php echo $c -> catalog[$i] -> main[$x] -> link[$y] -> page; ?>" required />
  55. </div>
  56. </div>
  57. <?php endif ?>
  58. <?php endfor ?>
  59. </div>
  60. <?php endfor ?>
  61. </div>



i funkcje

  1. function removeMain(main) {
  2. var catNumber = $(main).data('mainCat');
  3. var mainNumber = $(main).data('mainRow');
  4.  
  5. $('#cat' + catNumber).find('.row').not('.row:first-child, #cat' + catNumber + 'main0').remove();
  6. return false;
  7. }


która wywala .row ale zostawia wszystkie divy "cat1row0", "cat1row1"... a chce zeby zostawiul tylko cat1row0
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 10:23