Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX]"Przejęcie" linków przez treść załadowaną do DIVa
Mustava
post 26.03.2010, 12:37:45
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Problem:
Strona główna/startowa, z danymi "startowymi" - linki do styli i js'ów.
W treści strony trzy DIVy do których są ładowane wyniki wywołań zewnętrznych (inne pliki).
Pytanie:
Jak spowodować by załadowana treść do DIVów "przejęła" liniki" startowe.

W ładowanych linkak/plikach jest jeden z funkcją jquery "przechwytującą" wszystkie hrefy (<A href='....'>
  1. $(document).ready(function() {
  2. $('a').click(function() {
  3. gdzie = $(this).attr('target');
  4. co = $(this).attr('href');
  5. if (gdzie==''){alert('Brak parametru TERGET w opcjach HREFa!!');}
  6. else {
  7. alert(co+'\n '+gdzie);
  8.  
  9. $.ajax ({
  10. type: 'POST',
  11. url: co,
  12. beforeSend: function(html){ $('#'+gdzie).html(\"<CENTER><br><br><img SRC='style/czekaj.gif'><br><br><SPAN class='serif8'>Trwa pobieranie danych...</SPAN></CENTER>\");},
  13. success: function(html){ $('#'+gdzie).html(html);},
  14. error: function(html){ $('#'+gdzie).html(\"<CENTER><br><br><br><br><SPAN class='serif8b'>Błąd pobierania danych</SPAN></CENTER>\");}
  15. });
  16. }
  17. return false;
  18. });
  19. });


Jeżeli zaincluduję (lub bezpośrednio wstawię) do kodu ładowanych stron tę funkcję to dzieją się dziwne rzeczy - po kilka (lub więcej razy ) po kliknięciu jest wywoływana ta funkcja.

Jak zrobić by funkcja (lub plik z jej treścią) była ładowana tylko raz w głównej stronie i była "widoczna" dla treści ładowanych do DIVów?
Go to the top of the page
+Quote Post
trucksweb
post 26.03.2010, 12:44:53
Post #2





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


tak ebdziesz mial dostep do tej funkcji z ladowanych plikow

  1. $('a').live("click", (function() {


a zeby sie raz wywolywala ?
moze zastosuj event.stopPropagation() ?


--------------------
Rozmawia dwóch dyrektorów:
- Jaki jest twój ideał sekretarki?
- 20-letnia dziewczyna z 30-letnim doświadczeniem.
Go to the top of the page
+Quote Post
Mustava
post 26.03.2010, 13:48:42
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Cytat(trucksweb @ 26.03.2010, 12:44:53 ) *
tak ebdziesz mial dostep do tej funkcji z ladowanych plikow

  1. $('a').live("click", (function() {

OK - toto działa - THX

Cytat
a zeby sie raz wywolywala ?
moze zastosuj event.stopPropagation() ?


Wsatwiłem event'a jak poniżej - niestety nie działa (może robię coś nie tak - średnio się na tym znam sad.gif )
  1. $(document).ready(function() {
  2. $('a').live("click",(function(e) {
  3. e.stopPropagation();
  4. gdzie = $(this).attr('target');
  5. .......
  6. itd...


Ten post edytował Mustava 26.03.2010, 14:06:58
Go to the top of the page
+Quote Post
trucksweb
post 26.03.2010, 15:25:04
Post #4





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


to zrob moze inaczej bo po co powielasz funkcje jquery w tych wszystkich plikach ?

umiesc ja na stronie glownej do ktorej includujesz inne pliki. Jquery i tak dziala po stronie przegladarki czyli jak juz masz wszystko wyswietlone.



--------------------
Rozmawia dwóch dyrektorów:
- Jaki jest twój ideał sekretarki?
- 20-letnia dziewczyna z 30-letnim doświadczeniem.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 9.06.2024 - 22:22