Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Jquery] Dodawanie elementów przez append
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Monter08
Witam!
Mam problem z prawidłowym dodaniem elementów do danego diva. Otóż stworzyłem div o id="news-box" do którego lądują wszystkie newsy które są pobierane przez jquery i dodawane przez append, w tym miejscu pojawia się problem, ponieważ div news w css ma ustawiony background na img i gdy jquery wrzuca wszystko do news-boxa to ustawia tylko background dla jednego zamiast dla wszystkich.
Zastanawia mnie jeszcze jedna rzecz, dlaczego dodane elementy nie są interpretowane poprzez inne funkcje (przykładem może być rozsuwany element, działa tylko ten który wstawiłem na sztywno).
Źródło -> Tutaj (Postawione u mnie, wiec jeżeli nie działa oznacza że mnie nie ma smile.gif
erix
Cytat
Zastanawia mnie jeszcze jedna rzecz, dlaczego dodane elementy nie są interpretowane poprzez inne funkcje (przykładem może być rozsuwany element, działa tylko ten który wstawiłem na sztywno).

delegate()

Cytat
ponieważ div news w css ma ustawiony background na img i gdy jquery wrzuca wszystko do news-boxa to ustawia tylko background dla jednego zamiast dla wszystkich.

Hę? A nie pomyliłeś czasem id z klasą?

Strona mi się nie wczytała do końca, temu zgaduję.
Monter08
Cytat
Hę? A nie pomyliłeś czasem id z klasą?

Tzn?
erix
Czego nie rozumiesz?
Monter08
Nie rozumiem, jak mogłem pomylić id z class, gdy ustawia tylko jednemu background.
oczywiście, nadal nie rozwiązałem problemu...
erix
Opisz problem jasno i klarownie, a nie tak, że trzeba się większości domyślać, co miałeś na myśli.
Monter08
Przepraszam, otóż chce uzyskać taki efekt: Gdy osoba kliknie w przycisk "pokaż więcej newsów" jquery poprzez jsona pobiera sobie te newsy i wyświetla dodając do diva news-box, news w css ustawiony ma background, height itd (jest to nie istotne).
W jquery napisałem coś takiego.

  1. $(document).ready(function(){
  2.  
  3. function getnews(form, to)
  4. {
  5. $.getJSON("test.php?jsoncallback=?",{},function(json) {
  6. if(json.length) {
  7. for(i=0; i < json.length; i++) {
  8. $('#news-box').append('<div class="news" id="'+json[i].id+'"><p class="date">dodane przez '+json[i].nick+' dnia '+json[i].addday+'</p><p class="title">'+json[i].title+'</p><p class="value">'+json[i].value+'</p><a class="more" href="#'+json[i].id+'">czytaj dalej</a></div>');
  9. }
  10. } else alert("nima");
  11.  
  12. });
  13. }
  14.  
  15.  
  16. $('p.wiecej').click(function(){
  17. getnews(3,4);
  18. $(".news:odd").css("float", "right");
  19. $(".news:even").css("float", "left");
  20. });
  21. });

Z założenia po naciśnięciu "pokaż więcej" ma pobrać dwa kolejne newsy, aktualnie dodaje tylko 1 background i dodaje pierwszy newsy tak jak powinno, lecz drugi już bez backgrounda co oczywiście miesza dwa newsy i wygląda to tak jak by były dwa w jednym (screen: ), gdy kliknę jeszcze raz, znowu jeden dostaje backgrounda pozostałe nie, za trzecim razem już zostają tylko dwa bez backgrounda wiec musiało otrzymać dwa newsy, wiec nie wiem jak to w ogóle działa.
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.