Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Niemożliwość odczytania elementu po kilkukrotnym wczytaniu zawartości do tego samego elementu
puz219
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

Napisałem sobie przy użyciu jQuery skrypt wczytujący dynamicznie zawartość pliku do elementu <div>. Do tej pory wszystko jest w porządku, jednak ów <div> zawiera w sobie kolejny, który po najechaniu na ten, do którego zawartość się wczytuje staje się widoczny, a po opuszczeniu elementu ukrywa się. Wszystko prosto i przy pierwszym wczytaniu zawartości wszystko działa, ale jeżeli wczytam już zawartość po raz drugi, ten podrzędny div już się nie wyświetla w ogóle.

Trochę skomplikowany ten opis, ale przedstawiam poniżej kod, który może naświetli co nieco tę sytuację

index.php
  1. <div class="app">
  2.  
  3. <div class="column viewer"></div>
  4. <div class="column menu">
  5.  
  6. <a href="#" id="cat-1" class="cat-btn">Opcja #1</a>
  7. <a href="#" id="cat-2" class="cat-btn">Opcja #2</a>
  8. <a href="#" id="cat-3" class="cat-btn">Opcja #3</a>
  9. <a href="#" id="cat-4" class="cat-btn">Opcja #4</a>
  10. <a href="#" id="cat-5" class="cat-btn">Opcja #5</a>
  11.  
  12. </div>
  13. <div class="clear"></div>
  14.  
  15. </div>


product.php
  1. <img src="images/sample01.jpg" />
  2. <img src="images/sample02.jpg" />
  3. <img src="images/sample03.jpg" />
  4. <img src="images/sample04.jpg" />
  5. <img src="images/sample05.jpg" />
  6.  
  7. <div class="popup">Element Title</div>


A teraz kod w jQuery:

  1. $("a.cat-btn").each( function() {
  2.  
  3. $(this).click( function() {
  4.  
  5. if($(".viewer").is(":empty")) {
  6.  
  7. $(".viewer").load("product.php?cat=" + $(this).attr("id"), function(response, status, xhr) {
  8.  
  9. if(status == "success") {
  10.  
  11. $(this).fadeIn();
  12.  
  13. viewer_functions(); //funkcja odpowiedzialna za wyswietlenie diva
  14.  
  15. }
  16.  
  17. });
  18.  
  19. }
  20.  
  21. else {
  22.  
  23. $(".viewer").empty().hide();
  24.  
  25. $(".viewer").load("product.php?cat=" + $(this).attr("id"), function(response, status, xhr) {
  26.  
  27. if(status == "success") {
  28.  
  29. $(this).fadeIn();
  30.  
  31. viewer_functions(); //funkcja odpowiedzialna za wyswietlenie diva
  32.  
  33. }
  34.  
  35. });
  36.  
  37.  
  38. }
  39.  
  40. });
  41.  
  42. });
  43.  
  44.  
  45. function viewer_functions() {
  46.  
  47. $(.viewer).hover(function() {
  48.  
  49. $(this).find(".popup").fadeIn();
  50.  
  51. }, function() {
  52.  
  53. $(this).find(".popup").fadeOut();
  54.  
  55. });
  56.  
  57. }


Generalnie chodzi o to, iż po drugim wczytaniu zawartości product.php do elementu "viewer" skrypt nie znajduje już elementu "popup", przez co ten element się w ogóle nie wyświetla.

Proszę o jakieś sugestie by rozwiązać ten problem.

Z góry dziękuję za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
puz219
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Gdybyś czytał ze zrozumieniem moje posty, byłoby znacznie łatwiej się nam dogadać.

Pozwól więc, że w ramach wyjaśnienia wypunktuję Ci odpowiedzi na najbardziej nurtujące Cię pytania:

- To nie jest oryginalny kod - oryginalny jest bardziej złożony i nie ma najmniejszego sensu go tutaj udostępniać, gdyż jedynie ten fragment sprawia problemy.
- Kod zamieszczony tutaj pisałem "na poczekaniu", by zobrazować sytuację, tak więc jakieś tam niedopatrzenia mogły się zdarzyć, ale podkreślę to jeszcze raz, to nie jest oryginalny kod, który mam na serwerze, tak, że ten brak " nie ma tutaj najmniejszego znaczenia
- Kod na serwerze działa bezproblemowo przy pierwszym wczytaniu zawartości pliku project.php, tak więc nie może być żadnych błędów w zapisie, nieprawdaż?

Jedynie przy każdym następnym wczytaniu zawartości tego pliku do elementu "viewer", skrypt nie znajduje elementu "popup", lecz ponownie przy pierwszym wczytaniu wszystko jest ok, a więc nie jest to jakiś tam brak "
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 07:16