Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielokrotne dodawanie elementu do strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
gcdreak
Witam
Mam funkcję generującą link:
  1. function getEditIcon(size) {
  2. var cssClass,
  3. icon;
  4. size = size ? size : 16;
  5.  
  6. if (size <= 16) {
  7. cssClass = 'icon-edit'
  8. } else {
  9. cssClass = 'icon-edit-big'
  10. }
  11.  
  12. icon = $('<a />')
  13. .attr({
  14. 'href': '#',
  15. 'title': 'Edycja',
  16. 'class': cssClass
  17. });
  18.  
  19. return icon;
  20. }

Działa bez problemu.
Następnie chcę dodać utworzoną ikonkę do kilku elementów strony:
  1. var icon = getEditIcon();
  2.  
  3. $('#firstname').appendicon);
  4. $('#lastname').append(icon);
  5. $('#city').append(icon);
  6. $('#year').append(icon);

Ikonka pojawia się jedynie przy ostatnim elemencie (#year).
Dlaczego tak się dzieję i jak można temu zapobiec?
nospor
Dodając jakiś istniejący już obiekt do czegoś, to go zabierasz z tego co był najpierw, a potem go wpinasz tam gdzie chcesz. W rezultacie masz go w ostatnim elemencie smile.gif

Musisz klonować obiekt i dodawać klony a nie ciągle i ten sam obiekt.
misi3k
Spróbuj tak:
  1. $('#firstname, #lastname, #city, #year').each(function(index) {
  2. $(this).append(icon);}
  3. );
nospor
@misi3k przeczytałeś chociaż mojego posta?
To co ty zaproponowałeś to jest to samo co robi autor tylko inaczej zapakowane...
buliq
A wszystko tak ładnie opisali w manualu tongue.gif

misi3k
A rzeczywiście, mój błąd. @buliq słusznie zwraca uwagę na clone().
nospor
A ja to niby na co zwracałem uwagę
Cytat
Musisz klonować obiekt i dodawać klony a nie ciągle i ten sam obiekt.

?
tongue.gif
gcdreak
@nospor
Eleganko mi to wytłumaczyleś. Dziękuję
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.