Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Usuwanie z potwierdzeniem.
L0k0
post
Post #1





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

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


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!
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


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

Ten post edytował viking 21.02.2014, 12:04:58


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


albo
Kod
$(this).parents('div').remove();


Ten post edytował Pyton_000 21.02.2014, 12:11:29
Go to the top of the page
+Quote Post
L0k0
post
Post #4





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

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


  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.
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


może (this).find('div ktorego usuwamy').remove();
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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
Go to the top of the page
+Quote Post
L0k0
post
Post #7





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

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


Działa, super, dzięki smile.gif
Go to the top of the page
+Quote Post
Daimos
post
Post #8





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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


Ten post edytował Daimos 21.02.2014, 12:51:54


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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().
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


eee... Przecież to co Ci dałem działa tak jak tego chciałeś...

http://jsfiddle.net/2xyKB/
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 Aktualny czas: 20.08.2025 - 19:58