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

Posty w temacie


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 Aktualny czas: 19.08.2025 - 17:50