Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]
Forum PHP.pl > Forum > Po stronie przeglądarki
john_doe
Witam,

załóżmy, że z bazy generuję sobie 20 <div> tutaj jakiś html</div>
generując musiałbym nadać każdemu z nich jakiś unikalny id.

teraz po kliknięciu w jednego z nich chciałbym pokazać jego zawartość w innym div smile.gif

zawartość mogę pobrać ('#idDiv').html()

jednak nie wiem jak w jQuery napisać funkcję która będzie brała różne id tego divów generowanych z bazki

czyli np. napisałem coś takiego

  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function(){
  4.  
  5. $('#kliker').click(function(){
  6.  
  7. //$('#show').html('<img src="1.jpg" alt="" />');
  8.  
  9. var zawartosc = $('#1').html()
  10. alert(zawartosc);
  11.  
  12. });
  13.  
  14. });
  15.  
  16. </script>

i przykładowo w php dla testu

  1. <?php
  2.  
  3.  
  4. $items = array();
  5. $items[0] = '1.jpg';
  6. $items[1] = '2.gif';
  7. $items[2] = '3.gif';
  8.  
  9. $i=1;
  10. foreach($items as $item)
  11. {
  12. echo '<div id="'.$i.'"><img src="'. $item . '" alt="" /></div><br />';
  13. $i++;
  14. }
  15.  
  16. ?>
  17.  
  18.  
  19. <div id="kliker">kliker</div>
  20.  
  21. <div id="show"></div>

pozdrawiam
!*!
Nadajesz temu "wczytanemu" div zdarzenie $(this).click() po czym wyświetlasz jego zawartość gdzie chcesz.
kamil4u
A po co Ci nadawać id?
Stwórz div-y w taki sposób:
Kod
$('<div>', {
'html': 'tutaj jakiś html',
'click': function(){
   alert( $(this).html() );
}
});
john_doe
zobaczcie wyżej mój przykładowy zaczątek kodu
!*!
Nadaj każdemu div w #show zdarzenie .click() które wyświetli zawartość tak jak to jest wyżej. $(this) to będzie dany div jaki chcesz wyświetlić.
kamil4u
- ID nie może być liczbą
- ustosunkuj się do naszych rad
john_doe
z tym id to tylko przykład na szybko z ręki. Jeszcze w JQ nie zamiatam tak fajnie.
w show chce pokazać zawartość html każdego z wygenerowanych divów z bazy czy z innego źródła bez znaczenia.
Nie bardzo rozumiem jak zastosować Wasze rady
!*!
Kod
$('#show div').click(function() {
  alert('tu wstaw np .html() czy co tam chcesz aby odczytalo');
});
john_doe
!*! zobacz w show ma się pojawić zawartość wygenerowanych div

  1. <div id="pic"><img src="1.jpg" alt="" /></div>
  2. <div id="pic"><img src="2.gif" alt="" /></div>
  3. <div id="pic"><img src="3.gif" alt="" /></div>
  4.  
  5.  
  6. <div id="show"></div>
  7.  
  8. tak w jquery
  9.  
  10. $('#pic').click(function(){
  11.  
  12. //$('#show').html('<img src="1.jpg" alt="" />');
  13.  
  14. var zawartosc = $(this).html()
  15. alert(zawartosc);
  16.  
  17. });
  18.  


i już coś kosi smile.gif tylko zwraca mi zawartość 1szego
kamil4u
ID musi być unikalne. Użyj np. klasy(.nazwaKlasy)
!*!
http://jsfiddle.net/HctRa/
john_doe
witam,

aby nie zakładać nowego posta..... w kwestii wielkości zdjęcia. Jak dorobić aby zdjęcie wczytywało się z jakimś kulającym się gifem? w sensie dać znać że coś zaraz się pojawi
!*!
Zależy jak to zrobisz. Poczytaj opcje http://api.jquery.com/jQuery.ajax/ rozpoczynasz pobieranie pobrazka, w tym samym czasie pokazujesz tzw "loader" gdy operacja pobierania zostanie zakończona, chowasz go.
DM613
accord anniversary div a # appearance accident. bang () which displays the capacity as it is aloft. $ (This) it will be the div you wish to appearance.
lukaskolista
A moze po prostu:
  1. <script type="text/javascript">
  2. $(function() {
  3. $(".click").bind(function() {
  4. var html = $(this).html();
  5. $("#target").html(html);
  6. });
  7. });

Skrypt nalezy umiescic za divami, jezeli chcesz przed to funkcje bind() musisz zastapic funkcja live(). Contenty powinny miec class="click", a div docelowy id="target", oczywiscie do dostosowania.
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.