Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] load - dlaczego nastepuje przeladowanie strony ?
Forum PHP.pl > Forum > Przedszkole
michal2
Mam plik funkcje.js:
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function()
  4. {
  5.  
  6. $('#jeden').click(function()
  7. {
  8. $('#content').load('jeden.php');
  9. return false;
  10. });
  11.  
  12. $('#dwa').click(function()
  13. {
  14. $('#content').load('dwa.php');
  15. return false;
  16. });
  17.  
  18. });
  19.  



na stronie index.php mam:
  1. <script src="js/funkcje.js" type="text/javascript"></script>
  2. ..................
  3. <div id="content">
  4. <?php
  5. if (isset($_GET['id'])){
  6. if($_GET['id'] == '1'){
  7. include 'jeden.php';
  8. }elseif($_GET['id'] == '2'){
  9. include 'dwa.php';
  10. }else{
  11. include 'jeden.php';
  12. }
  13. }else{
  14. include 'jeden.php';
  15. }
  16. ?>
  17. </div>



Na stronie jeden.php:
  1. <div id="menu">
  2. <a id="jeden_selected"></a>
  3. <a id="dwa" href="index.php?id=2"></a>
  4. </div>
  5.  
  6.  
  7. <div id="informacje">
  8.  
  9. aaaaaaaaaaa
  10.  
  11. </div>


Na stronie dwa.php:
  1. <div id="menu">
  2. <a id="jeden" href="index.php?id=1"></a>
  3. <a id="dwa_selected"></a>
  4. </div>
  5.  
  6.  
  7. <div id="informacje">
  8.  
  9. bbbbbbbbb
  10.  
  11. </div>


Domyslnie laduje sie strona jeden.php zawierajaca tresc i menu. Menu dlatego ze na stronie jeden.php w menu pierwszy link to pomaranczowy button (sygnalizujacy ze wybrano strone 'jeden.php'), a drugi jest bialy. Na stronie dwa.php pierwszy link to bialy button a drugi pomaranczowy (sygnalizujacy ze wybrano strone dwa.php). I jak klikam na buttony z tego menu to zawartosc i menu sie zmienia, ale nastepuje przeladowanie strony. Chyba ze w kazdym z tych plikow dodam ponownie kod javascript z poczatku mego postu (wtedy jest ok, ale nie jest to chyba wygodne rozwiazanie takie dodawanie za kazdym razem do kazdego pliku kodu js). Dlaczego ?
wookieb
Wystarczy, że po prawidłowym załadowaniu każdej strony za pomocą load zrobisz
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready();
[JAVASCRIPT] pobierz, plaintext

Kod wywołujesz w trzecim parametrze http://docs.jquery.com/Ajax/load#urldatacallback
vokiel
[JAVASCRIPT] pobierz, plaintext
  1. $('#jeden').click(function(e){
  2. e.preventDefault();
  3. // reszta kodu
  4. });
[JAVASCRIPT] pobierz, plaintext
michal2
wookieb tak przeciez robie smile.gif

vokiel niestety to nie pomaga sad.gif
wookieb
Cytat(michal2 @ 17.08.2009, 13:30:12 ) *
wookieb tak przeciez robie smile.gif

To chyba jestem ślepy bo nie widzę 3 parametru dla metody load.
erix
Cytat
vokiel niestety to nie pomaga

  1. pokaż, jak wstawiasz
  2. a co w konsoli błędów?
michal2
Jesli dobrze Ciebie wooki zrozumialem to chodzilo ci o:

  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function()
  4. {
  5.  
  6. $('#jeden').click(function()
  7. {
  8. $('#content').load('jeden.php',null,$(document).ready());
  9. return false;
  10. });
  11.  
  12. $('#dwa').click(function()
  13. {
  14. $('#content').load('dwa.php',null,$(document).ready());
  15. return false;
  16. });
  17.  
  18. });
  19.  



Niestety teraz zawartosci plikow nie sa w ogole wczytywane. sad.gif


erix wstawialem tak:

  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function()
  4. {
  5.  
  6. $('#jeden').click(function(e)
  7. {
  8. e.preventDefault();
  9. $('#content').load('jeden.php',null,$(document).ready());
  10. return false;
  11. });
  12.  
  13. $('#dwa').click(function(e)
  14. {
  15. e.preventDefault();
  16. $('#content').load('dwa.php',null,$(document).ready());
  17. return false;
  18. });
  19.  
  20. });
  21.  

wookieb
Mój błąd
[JAVASCRIPT] pobierz, plaintext
  1. function rdy()
  2. {
  3. $('#jeden').click(function()
  4. {
  5. $('#content').load('jeden.php', null, rdy);
  6. return false;
  7. });
  8.  
  9. $('#dwa').click(function()
  10. {
  11. $('#content').load('dwa.php', null, rdy);
  12. return false;
  13. });
  14. }
  15.  
  16. $(document).ready(rdy);
[JAVASCRIPT] pobierz, plaintext
michal2
Działa ... dzięki, a moglbys udzielic informacji dlaczego ? Nie bardzo rozumiem dlaczego Twoj sposob jest poprawny a moj nie tongue.gif
wookieb
Bo jak przeładowałeś zawartosc to linki o podanych idkach straciły zdarzenie click, dlatego trzeba było je dodać ponownie.
vokiel
Cytat(wookieb @ 17.08.2009, 15:01:27 ) *
Bo jak przeładowałeś zawartosc to linki o podanych idkach straciły zdarzenie click, dlatego trzeba było je dodać ponownie.


Do takich zastosowań chyba pasuje plugin livequery
michal2
Dziękuję Wam obu, zobacze ten plugin.
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.