Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak usunąć/ukryć wybrany blok div ?
InosU31
post 18.05.2017, 23:57:02
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Mam problem z usunięciem/schowaniem danego bloku div. Gdy użyję funkcji .each to chowa mi wszystkie bloki - prawdopodobnie dlatego, że wykonuję tą funkcję w innym nadrzędnym div - ale muszę ją tam wykonywać. Ogólnie zaczytuję przez php wszystkie .caly_div ale #potwierdź_usun w którym ma się wykonywać funkcja do ukrywania div jest poza .caly_div. Do rzeczy:

  1. <div id="nadrzedny" style="padding:10px 20px 20px 20px;">
  2. <div class="caly_div" rel="15">
  3.  
  4. <a class="confirm" href="#15">Zakończ</a>
  5.  
  6. </div>
  7.  
  8. <div class="caly_div" rel="2">
  9.  
  10. <a class="confirm" href="#2">Zakończ</a>
  11.  
  12. </div>
  13.  
  14. <div class="caly_div" rel="7">
  15.  
  16. <a class="confirm" href="#7">Zakończ</a>
  17.  
  18. </div>
  19. </div>
  20. <div id="potwierdz_usun"></div>
  21.  
  22.  




  1. $(".confirm").click(function(){
  2. $("#potwierdz_usun")
  3. .css({opacity:0.85})
  4. .fadeIn()
  5. .html('<div><div><h3>Czy zakończyć?</h3><p><form><button type="button" class="formZakoncz" id="button_login" style="padding: 5px 10px;margin-right:10px;" onClick=\"location.href=\'' + $(this).attr("href") + '\'\">Tak</button> <button type="button" value="Nie" id="button_login" style="padding: 5px 10px;">Nie</button></form></p></div></div>');
  6.  
  7.  
  8.  
  9. $(".formZakoncz").click(function(){
  10.  
  11. //grab the full url
  12. var hash = this.href;
  13. //generate the parameter for the php script
  14. var data = 'page=' + encodeURIComponent(document.location.hash);
  15. $.ajax({
  16. url: "panel/linki/zakonczenie_ajax.php",
  17. type: "GET",
  18. data: data,
  19. cache: false,
  20. success: function (html) {
  21.  
  22.  
  23. $('.caly_div').each(function(){
  24.  
  25. $(this).hide(); ---------------------- w tym miejscu ma być ta funkcja ------------------
  26. return false;
  27. });
  28. }
  29. });
  30.  
  31.  
  32. });
  33. //--koniec confirm
  34. });
  35.  
  36. $("#potwierdz_usun").click(function(){$(this).fadeOut();});
  37.  



Proszę o jakieś podpowiedzi bo kombinuję już kilka dni i mi się już pomysły skończyły.

Pozdrawiam i z góry dziękuję

Go to the top of the page
+Quote Post
sunpietro
post 19.05.2017, 07:31:22
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


Nie do końca zrozumiałem problem.
Chcesz usuwać wszystkie divy z klasą .caly_div po kliknięciu w #potwierdz_usun, tak?
Jeśli tak, to wystarczy że zrobisz coś takiego:
Kod
$("#potwierdz_usun").click(function() {
    $(this).fadeOut();

    $('.caly_div').each(function() {
        $(this).hide();                                                    
    });
});


--------------------
Go to the top of the page
+Quote Post
InosU31
post 19.05.2017, 16:11:45
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

na początek dziękuję za zainteresowanie :-)

Chce usunąć/schować konkretny ".cały_div". Gdy odpalam ".confirm" otwiera mi się okienko z potwierdzeniem (#potwierdz_usun) - opcja Tak i Nie. Gdy kliknę na Tak wykonuje się ".formZakoncz" i cały ajax w którym będę sobie usuwał dane z bazy danych. Wszytko jak do tej pory robię po Get. Po tym usunięciu chciałbym aby div ".cały_div" się schował. Problem polega na tym że mam kilkanaście tych bloków ".caly_div" i w zależności w który ".confirm" kliknę chciałbym aby ten konkretny się usunął a nie wszystkie. mam nadzieję że trochę jaśniej napisałem.

Dodam tylko że okno z potwierdzeniem jest poza wszystkimi blokami .caly_div z tego względu że ma przeźroczyste tło i gdybym umieścił to potwierdzenie wewnątrz bloku ".caly_div" to by przyciemniło tylko ten jeden ".caly_div" nie całą stronę.

Pozdrawiam
Go to the top of the page
+Quote Post
viking
post 19.05.2017, 18:57:59
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Dajesz:before warstwę pokrywająca i nie ma znaczenia gdzie się znajduje. Na szybko możesz utworzyć zmienną przechowującą klikniety element i później na tym pracować dalej (kopia obiektu), możesz w selektorze wyszukać atrybut z konkretnym rel jesli są unikalne.


--------------------
Go to the top of the page
+Quote Post
InosU31
post 21.05.2017, 15:06:24
Post #5





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Dzięki viking za podpowiedz :-)

Udało się choć nie wiem czy do końca jest to poprawne ale grunt że działa :-)

Dodałem po ".confirm" w jquery zmienna:


  1. $(".confirm").click(function(){
  2.  
  3. var relLink = $(this).attr("rel"); //-- to dodałem
  4.  
  5. $("#potwierdz_usun")
  6. .css({opacity:0.85})
  7. .fadeIn()
  8. .html('<div><div><h3>Czy zakończyć?</h3><p><form><button type="button" class="formZakoncz" id="button_login" style="padding: 5px 10px;margin-right:10px;" onClick=\"location.href=\'' + $(this).attr("href") + '\'\">Tak</button> <button type="button" value="Nie" id="button_login" style="padding: 5px 10px;">Nie</button></form></p></div></div>');
  9.  
  10.  
  11.  
  12. $(".formZakoncz").click(function(){
  13.  
  14. //grab the full url
  15. var hash = this.href;
  16. //generate the parameter for the php script
  17. var data = 'page=' + encodeURIComponent(document.location.hash);
  18. $.ajax({
  19. url: "panel/linki/zakonczenie_ajax.php",
  20. type: "GET",
  21. data: data,
  22. cache: false,
  23. success: function (html) {
  24.  
  25.  
  26. $('.caly_div'+relLink).each(function(){ //--- tu dodałem
  27.  
  28. $(this).hide();
  29. return false;
  30. });
  31. }
  32. });
  33.  
  34.  
  35. });
  36. //--koniec confirm
  37. });
  38.  
  39. $("#potwierdz_usun").click(function(){$(this).fadeOut();});
  40.  




a w kodzie html:

  1. <div id="nadrzedny" style="padding:10px 20px 20px 20px;">
  2. <div class="caly_div15">
  3.  
  4. <a class="confirm" href="#15" rel="15">Zakończ</a>
  5.  
  6. </div>
  7.  
  8. <div class="caly_div2">
  9.  
  10. <a class="confirm" href="#2" rel="2">Zakończ</a>
  11.  
  12. </div>
  13.  
  14. <div class="caly_div7">
  15.  
  16. <a class="confirm" href="#7" rel="7">Zakończ</a>
  17.  
  18. </div>
  19. </div>
  20. <div id="potwierdz_usun"></div>
  21.  



czyli każdy ".caly_div" ma inną nazwę a przez to jest innym blokiem ;-) Później funkcja "each" która wyszukuje mi ten konkretny div. Liczby w nazwie generuję za pomocą php i mysql ;-)

Chciałem to zrobić na zasadzie: "wyszukaj .caly_div który zawiera link rel="x".." ale nie potrafię się za bardzo posługiwać instrukcjami w jquery choć w php potrafię.


Pozdrawiam

Ten post edytował InosU31 21.05.2017, 15:15:57
Go to the top of the page
+Quote Post
viking
post 22.05.2017, 11:52:57
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


To raczej brak podstaw CSS na którym operuje sizzle.
https://jsfiddle.net/4Lt6d3zL/


--------------------
Go to the top of the page
+Quote Post
soliniak
post 22.05.2017, 13:47:03
Post #7





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

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


Czy zamiast tej formy
[JAVASCRIPT] pobierz, plaintext
  1. $(".formZakoncz").click(function(){
[JAVASCRIPT] pobierz, plaintext


Nie powinno używać się:
[JAVASCRIPT] pobierz, plaintext
  1. $(".formZakoncz").on('click', function(){
[JAVASCRIPT] pobierz, plaintext


?
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: 23.04.2024 - 20:42