Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Usuwanie z potwierdzeniem.
Forum PHP.pl > Forum > Przedszkole
L0k0
Witam!

Przeszukałem forum i nie znalazłem odpowiedniego rozwiązania, sprawa wydaje się być prosta, a jednak taka nie jest.

Dodaję sobie kolejno div'y

  1. <div>
  2. <span>Pierwszy</span>
  3. <button class="usun">Usuń</button>
  4. </div>
  5. <div>
  6. <span>Drugi</span>
  7. <button class="usun">Usuń</button>
  8. </div>


Po kliknięciu Usuń pojawia się modal z pytaniem: Czy na pewno usunąć? TAK/NIE.

Po kliknięciu TAK div powinien się usunąć.

Problem jest taki, że nie jestem w stanie namierzyć konkretnego div'a, ponieważ $(this) wskazuje na przycisk w modalu. Myślałem nadawać przyciskom numerowane klasy (usun_1, usun_2) ale i tak nie wiem 'jak się do nich dostać'?

Ma ktoś jakiś pomysł?

Pozdrawiam!
viking
Jeżeli masz to opakowane w jakiś kontener np #test to
  1. $('#test').on('click', 'div', function(e) {
  2. console.log(this);
  3. $(this).find('button')... //button
  4. }
  5. )};

Zwróci wartość div. Nie rozumiem do końca z czym masz problem
Pyton_000
albo
Kod
$(this).parents('div').remove();
L0k0
  1. $('form.formularz').on('click', '.usun_zdarzenie', function(){
  2.  
  3. $('#usun_zdarzenie').modal('show');
  4.  
  5. $('.confirm').on('click', function(){
  6. console.log($(this));
  7. $('.usun_zdarzenie').parent().remove();
  8. });
  9. });


Tak wygląda mój kod do tego, czyli po kliknięciu usuń otwiera się okienko potwierdzenia. Jeśli ktoś kliknie TAK (.confirm) to usuwa div'a (rodzica buttona).

problem jest taki, że każdy div ma buttona o klasie 'usun_zdarzenie' i usuwa wszystkie.
Turson
może (this).find('div ktorego usuwamy').remove();
phpion
Spróbuj tak:
[JAVASCRIPT] pobierz, plaintext
  1. $('form.formularz').on('click', '.usun_zdarzenie', function(){
  2. var $this = $(this); // DODANE
  3.  
  4. $('#usun_zdarzenie').modal('show');
  5.  
  6. $('.confirm').on('click', function(){
  7. $this.parent().remove(); // ZMIENIONE
  8. });
  9. });
[JAVASCRIPT] pobierz, plaintext
L0k0
Działa, super, dzięki smile.gif
Daimos
Nie rób tego za pomocą parent jak niektórzy podpowiadają ;/
Łatwo się naciąć i później mieć problemy, kiedy zmienisz strukturę HTML
Elementy na których chcesz działać, zawsze oznaczaj identyfikatorem:
  1. <div id="div_1">
  2. <span>Pierwszy</span>
  3. <button class="usun" data-delete="div_1">Usuń</button>
  4. </div>

W przycisku do usuwania podajesz j/w co chcesz usuwać i problem z głowy
[JAVASCRIPT] pobierz, plaintext
  1. $('button.usun').click(function(){
  2. $('#'+$(this).data('delete')).remove();
  3. return false;
  4. });
[JAVASCRIPT] pobierz, plaintext
phpion
Czyli kiedy należy używać parent()? Nigdy, bo może się zmienić struktura dokumentu? Rozwiązań tutaj jest kilka, równie dobrze można użyć closest().
Pyton_000
eee... Przecież to co Ci dałem działa tak jak tego chciałeś...

http://jsfiddle.net/2xyKB/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.