Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]Kopiowanie diva ze zdarzeniami
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sazian
Witam,
w jaki sposób można przekopiować zawartość diva wraz ze zdarzeniami questionmark.gif

potrzebuję dopisać do gotowego skryptu galerii(http://galleria.aino.se/) pewną funkcjonalność
otóż do każdego zdjęcia może być wyświetlany opis, domyślnie jest to tekst z atrybutu alt. Ja tak przerobiłem ten skrypt aby był wczytywany tekst z diva
[JAVASCRIPT] pobierz, plaintext
  1. escription: $('#ref_'+img.attr('ref')).html() || '',
[JAVASCRIPT] pobierz, plaintext

ale do elementów w tym diwie są podpięte pewne akcje(na podstawie nazwy klasy), a przy taki kopiowaniu zostaje skopiowany tylko kod html bez podpiętych zdarzeń sadsmiley02.gif

zegarek84
w jQ możesz kopiować elementy ze zdarzeniami za pomocą .clone() - oczywiście o ile te zdarzenia podpinałeś za pomocą jQ (w szczegóły nie ma sensu wchodzić)...

jednak trochę nie rozumiem Twojej wypowiedzi, po za tym powinieneś dać przykład live (online) strony...
sazian
demo:
http://mercedes.gocreate.pl/galeria/
do pobranie:
http://mercedes.gocreate.pl/galeria/classic.tar.gz


na czarnym pasku na górze pojawia się napis click pod który jest podpięta akcja

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. $('.ref').click(function(){
  4.  
  5. alert($(this).attr('id'));
  6.  
  7. });
  8.  
  9.  
  10. });
[JAVASCRIPT] pobierz, plaintext

po wpisaniu

[JAVASCRIPT] pobierz, plaintext
  1. escription: $('#ref_'+img.attr('ref')).clone() || '',
[JAVASCRIPT] pobierz, plaintext

nie dzieje się nic (napis jest niewidoczny)


zegarek84
Cytat(sazian @ 16.12.2011, 15:01:26 ) *
na czarnym pasku na górze pojawia się napis click pod który jest podpięta akcja
...

nie... na czarnym pasku pod napis "click" nie masz podpięte żadne zdarzenie... znalazłem 2 elementy o tej klasie które mają podpięte zdarzenie o którym piszesz ale są na początku drzewa w body i są ukryte!!!
  1. <span id="ref_1" class="hidden ref">
  2. <span> click </span>
  3. </span>
  4.  
  5. <div id="ref_0" class="hidden ref">
  6. <span> click </span>
  7.  
  8. </div>

i gdzie masz zapisany obiekt imgquestionmark.gif próbowałem go znaleźć lecz nie widzę, jako zmienną globalną też go nie tworzysz gdyż console.log(img) nic nie pokazało...

firebug doinstaluj sobie w mozilli i jedziesz z koksem - poza tym nie bardzo rozumiem co chcesz osiągnąć...
sazian
ok jeszcze raz
galeria jest tworzona następująco
  1. <div id="galleria">
  2. <a href="1.jpg">
  3.  
  4. <img ref="1" src="a1.jpg">
  5. </a>
  6. <a href="2.jpg">
  7. <img ref="0" src="a2.jpg">
  8. </a>
  9.  
  10. </div>
  11.  
  12. // Load the classic theme
  13. Galleria.loadTheme('galleria.classic.js');
  14.  
  15. // Initialize Galleria
  16. $('#galleria').galleria();
  17.  
  18. </script>

wywołanie funkcji $('#galleria').galleria(); powoduje przekształcenie tego kodu na kod galerii.
Domyślnie w tym czarnym polu na górze była wczytywana zawartość pola "alt", ja przerobiłem kod tak aby była wczytywana zawartość selektora o id "ref_X" gdzie X to parametr ref z obrazka (<img ref="0" src="a2.jpg">).
Czyli w tym przykładzie ma być wczytywana zawartość jednego z tych obiektów
  1. <span id="ref_1" class="hidden ref">
  2. <span> click </span>
  3. </span>
  4. <div id="ref_0" class="hidden ref">
  5. <span> click </span>
  6. </div>

Zawartość jest wczytywana prawidłowo ale po kliknięciu na span nic się nie dzieje(akcja nie jest kopiowana)
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $(document).ready(function(){
  3.  
  4. $('.ref').click(function(){
  5.  
  6. alert($(this).attr('id'));
  7.  
  8. });
  9.  
  10.  
  11. });
[JAVASCRIPT] pobierz, plaintext


ja chcę aby była wczytywana zawartość odpowiedniego "#ref_" wraz z zdarzeniami
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.