Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Błąd w srypcie
Forum PHP.pl > Forum > XML, AJAX > AJAX
szafran86
Nie za bardzo wiem jak zatytułować tego posta, ale do rzeczy:

Mam 3 pliki:

index.php

  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  2. <script type="text/javascript" src="4139_104_jquery-1_2_3.js"></script>
  3. <script type="text/javascript" src="script.js"></script>
  4. </head>
  5. <a id="laduj" href="">Zaladuj plik loaded_file.html</a>
  6. <div id="conteiner"></div>
  7. </body>
  8. </html>


script.js

  1. $(document).ready(function(){
  2.  
  3. $('a#laduj').click(function(){
  4.  
  5. $('#conteiner').load('loaded_file.html');
  6.  
  7. return false;
  8.  
  9. });
  10.  
  11. $('a#link_z_ladowanego_pliku').click(function(){
  12.  
  13. $('#conteiner').hide();
  14.  
  15. return false;
  16. });
  17. });


i loaded_file.html

  1. <p>
  2. Lorem Ipsum...
  3. </p>
  4. <p>
  5. <a id="link_z_ladowanego_pliku" href="">ukryj zaladowany plik</a>
  6. </p>



Działa ładowanie zawartości pliku loaded_file.html do diva o id="conteiner"

ALE

W pliku loaded_file.html mam link który powinien ukryć div'a conteiner. A tego nie robi.

Jakie błędy zrobiłem że mi to nie działa?

przykład można zobaczyć tu

Pomóżcie
batman
Nie działa, ponieważ wszystkie zdarzenia zostały już "oskryptowane" przez jQuery. Ty wczytujesz nową zawartość, która nie jest "oskryptowana", ponieważ nie było jej podczas ładowania strony.
Jest kilka sposobów na rozwiązanie tego problemu:
1. Użycie pluginu - Live Query (tak się chyba nazywa) - nigdy z niego nie korzystałem.
2. Zastosowanie funkcji bind pod wczytaniu treści przez load, w celu "oskryptowania" nowej zawartości strony.
3. Napisanie obsługi kliknięcia w ładowanym pliku.
szafran86
Dzięki za podpowiedź.

Mógłbyś mi jednak zasugerować jak powinienem użyć tej funkcji bind();

Edit:

Problem rozwiązany.

Użyłem LiveQuery.

download

I oto mój nowy plik script.js

  1. $(document).ready(function(){
  2.  
  3. $('a#laduj').click(function(){
  4. $('#conteiner').show();
  5. $('#conteiner').load('loaded_file.html');
  6.  
  7. return false;
  8. });
  9.  
  10. $('a#link_z_ladowanego_pliku').livequery('click', function() {
  11.  
  12. $('#conteiner').hide();
  13.  
  14. return false;
  15.  
  16. });
  17. });
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.