Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podmiana Divów[JQuery]
Forum PHP.pl > Forum > Po stronie przeglądarki
Kubik93
Cześć wszystkim,

W projekcie mam button, który wyświetla się w pętli wraz z innymi elementami. Pętla generuje mi x takich wyników i x takich buttonów.
Z pomocą JQuery po onClicku ustawiam ten button na hide() i wyświetlam button show() w jednym skrypcie.

problem polega na tym, że wszystkie buttony mają jedną nazwę i skrypt reaguje na wszystkie buttony.



<script>
$( 'button[name="add-contact"] ).click(function() {
$( 'button[name="add-contact"]' ).hide();
$( 'button[name="contact-added"]' ).show();
});
</script>

Wiem, że muszę wyliczyć elementy wygenerowane i podpiąć to pod tablice aczkolwiek idzie topornie.
próbowałem zrobić pętle for w skrypcie aczkowiek wtedy wywala mi skrypt sad.gif

PS. dodam, że sam skrypt umieszczony jest w Phpie
  1. </php ....
  2. echo<<<END
  3. <script>..</script>
  4. END;
  5. ?>


z góry dzięki za pomoc!
trueblue
Zmieniaj przyciski tylko w rodzicu przycisku .add-contact.

Swoją drogą ten możesz ukryć poprzez $(this), a nie selektor.
Kubik93
Nie, że nie chcę mi się szukać w necie ( klepie już ponad godzinę ).
Widzę informację na temat jak zmienić rodzica selectora aczkolwiek nie widzę już wpisów jak zmienić tylko dziecko.

$(this) fajnie działa na pierwszy button smile.gif
trueblue
Skoro wiesz jak znaleźć rodzica, to dziecko będzie... dzieckiem tego rodzica.
Kubik93
Hah tak ! tylko jak to zapisać w kodzie biggrin.gif ?
viking
$(this).find().show() gdzie w find podajesz selector.
A najlepiej poświęcić chwilę na poczytanie https://api.jquery.com/category/traversing/tree-traversal/
Kubik93
  1.  
  2. <div class="date-list-div-global">
  3. .....
  4. Jakieś elementy
  5. .....
  6. <button class="date-list-div-bottom-a" name="add-contact">Dodaj kontakt</button>
  7. <button class="date-list-div-bottom-c" name="contact-added">Kontakt dodany</button>
  8. </div>
  9.  


<script>
$( 'button.date-list-div-bottom-a' ).click(function() {
$(this).hide();
$('div.date-list-div-global').find( 'button.date-list-div-bottom-c' ).show();
$( 'div.add-position' ).show( 300 ).delay( 1500 ).fadeOut( 400 );
});
</script>


$(this).hide(); urywa tylko jeden selektor z petli wyników

$('div.date-list-div-global').find( 'button.date-list-div-bottom-c' ).show(); pokazuje nowy element w każnym wyniku petli. Czyli dalej nie działa sad.gif
trueblue
$('div.date-list-div-global') nie jest rodzicem przycisku, rodzicem przycisku jest $(this).parent('div.date-list-div-global')
Kubik93
Dzięki, działa! dzisiaj poczytam temat smile.gif
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-2024 Invision Power Services, Inc.